我下C ++,MFC,窗户编程。

我要删除一个文件夹到回收站。 我怎样才能做到这一点?

    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”)

scroll top