我试图复制一个目录到一个新的位置。所以我使用SHFileOperation/SHFILEOPSTRUCT如下:SHFileOperation/SHFILEOPSTRUCT
SHFILEOPSTRUCT sf;
memset(&sf,0,sizeof(sf));
sf.hwnd = 0;
sf.wFunc = FO_COPY;
dirName += "\\*.*";
sf.pFrom = dirName.c_str();
string copyDir = homeDir + "\\CopyDir";
sf.pTo = copyDir.c_str();
sf.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI;
int n = SHFileOperation(&sf);
if(n != 0)
{
int x = 0;
}
所以我设置为上述值。我在文件夹中创建了一个文件(我已经关闭了句柄,因此它应该可以移动)。 SHFileOperation调用返回2,但我无法找到解释这些错误代码的地方。有没有人知道我在哪里可以找到2意味着什么,或者有没有人有任何想法,为什么它可能不工作?干杯
双空终止。所以我在每个结尾添加一个\ 0? – discodowney 2012-02-08 10:42:39
基本上,是的。 – hmjd 2012-02-08 10:55:07
它没有任何区别。我仍然从SHFileOperation得到2。这两个文件夹都存在,并且pFrom文件夹中有一个文件,所以我不知道它无法找到哪个文件。 – discodowney 2012-02-08 10:58:24