我一直在努力得到這個權利現在幾個小時,它的作品完美在Windows Vista & Windows 7,但當我在Windows上運行它XP沒有任何消息失敗。不幸的是,我沒有XP下的開發環境,所以我不能通過調試器運行它來檢查,我錯過了一些非常明顯的事情嗎?同一段代碼實際上使用CopyFile
和一些命令將數據寫出到C:\
,所以如果它是一個權限錯誤,那很奇怪。移動文件夾Windows的C + +:工作Vista和以上,而不是XP
編輯:返回值是1223,ERROR_CANCELLED
這意味着用戶取消。
編輯2:我禁用了s.fFlags,它立即彈出一個對話框詢問它是否應該創建dir-test
文件夾,因此我切換到FOF_NOCONFIRMATION
,它似乎忽略了該標誌。我也會在刪除過程中使用相同的SHFileOperation
方法,因此它不適用於文件副本。
LPTSTR source = L"dir-test\\*\0";
LPTSTR dest = L"C:\\dir-test\0";
SHFILEOPSTRUCT s = { 0 };
s.hwnd = 0;
s.wFunc = FO_COPY;
s.fFlags = FOF_SILENT;
s.pTo = dest;
s.pFrom = source;
int n;
n = SHFileOperation(&s);`
什麼是回報值? – lcs 2013-03-06 15:28:36
爲什麼不使用['MoveFile'](http://msdn.microsoft.com/en-us/library/windows/desktop/aa365239(v = vs.85).aspx)? – 2013-03-06 15:30:50
@millsj:無法告訴你,我沒有一個XP開發環境來調試它。 – 2013-03-06 15:32:57