我正在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,并且应指定错误代码。你得到了什么?

10-07 15:23