如何将文件夹删除到回收站中

问题描述:

我在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 \”

从SHFileOperation返回值是一个int,并应指定错误代码。你得到了什么?

我知道这是不正确的做法,但如果你不能找到一个解决方案,你可以试试这个..

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

然后可以按系统( “nircmd.exe emptybin”)

+0

非常感谢调用这些函数~~~~ – user25749 2009-08-10 10:50:33