質問

私はプログラミングの下での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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top