削除フォルダをゴミ箱に移動させ
-
12-09-2019 - |
質問
私はプログラミングの下でのC++,MFC、windows。
したい削除フォルダへのゴミ箱です。する方法を教えてください。
CString filePath = directorytoBeDeletePath;
TCHAR ToBuf[MAX_PATH + 10];
TCHAR FromBuf[MAX_PATH + 10];
ZeroMemory(ToBuf, sizeof(ToBuf));
ZeroMemory(FromBuf, sizeof(FromBuf));
lstrcpy(FromBuf, filePath);
SHFILEOPSTRUCT FileOp;
FileOp.hwnd = NULL
FileOp.wFunc=FO_DELETE;
FileOp.pFrom=FromBuf;
FileOp.pTo = NULL;
FileOp.fFlags=FOF_ALLOWUNDO|FOF_NOCONFIRMATION;
FileOp.hNameMappings=NULL;
bRet=SHFileOperation(&FileOp);
ずっと、コードしますのでご注意ください。▼いつでも失敗しました。
この問題:filePathき"c:\abc"ない"c:\abc\"
解決
SHFileOperationからの戻り値がintで、エラーコードを指定する必要があります。あなたは何を得るのですか?
他のヒント
私はそれが正しい方法ではありません知っていますが、解決策を見つけるカント場合は、これを試すことができます..
ファイルnircmd.exeやごみ箱を空にすることができ、別のexeファイルをダウンロードします。
あなたは、システムによってこれらの関数を呼び出します( "nircmd.exe emptybin")
探していますが、この作品は、しかしです。実際の問題の pFrom
パラメータは特別な形式です。にMSDN docsのための SHFILEOPTS, でき、リストのファイルパス、nullで終わり、nullの場合最後ます。
お場合(この作業が FromBuf
配列は以下のファイル名のすべてのinitialisedゼロになります。により一般的な溶液をバッファの長するのに十分なファイル名を追加して二つのnul文字である。注意Windowsファイル名 ができ 長くなり _MAX_PATH
, 例えば見 https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file#maximum-path-length-limitation
所属していません StackOverflow