2009-08-10 77 views
2

我在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); 

上面的代碼有問題嗎? 它總是失敗。

我發現這個問題: 文件路徑應該是: 「C:\ ABC」 而不是 「C:\ ABC \」

回答

3

從SHFileOperation返回值是一個int,並應指定錯誤代碼。你得到了什麼?

0

我知道這是不正確的做法,但如果你不能找到一個解決方案,你可以試試這個..

下載文件nircmd.exe或其他exe文件,可以清空回收站。

然後可以按系統( 「nircmd.exe emptybin」)

+0

非常感謝調用這些函數~~~~ – user25749 2009-08-10 10:50:33