ごみ箱へGO!
ファイルをごみ箱に送るコードを書いた。
#include <windows.h> #include <shlwapi.h> // shlwapi.lib のリンクが必要 #include <string.h> int main(int argc, char **argv) { int i; char from[MAX_PATH + 1]; SHFILEOPSTRUCT op = { NULL, FO_DELETE, from, NULL, FOF_SILENT | FOF_ALLOWUNDO}; for (i = 1; i < argc; i++) { if (PathIsRelative(argv[i])) { PathSearchAndQualify(argv[i], from, MAX_PATH); } else { strcpy(from, argv[i]); } from[strlen(from) + 1] = '\0'; // double null terminate SHFileOperation(&op); } return 0; }
パスを一発で補完できる shlwapi が便利すぎる。
SHFileOperation() は一度に複数のファイルを処理できるのだが、自分のことなので \0 の処理を間違えてメモリを破壊しそうだ。
今の所、UNCにもワイルドカードにも対応してない荒削りだが、徐々に改善していけたらいいなあ。