CopyFile成功,MoveFile失败,参数相同 – C ++

我正在处理一个在C ++中非常令人沮丧的问题。 我需要使用MoveFile函数,但是失败。 现在我正在使用这样的CopyFile:

partialresult = L"D:\\CppWork\\test2\\decToBin.exe"; finala = L"D:\\CppWork\\test2\\PeFiles_\\decToBin.exe"; if (0 == CopyFile(partialresult, finala,b)) {///// DWORD err = GetLastError(); std::cout << " -> Copy Fail" << std::endl; } 

复制工作正常,但如果我用MoveFilereplaceCopyFile(不更改path)与代码0x20( MSDN文档 – > ERROR_FILE_NOT_FOUND )失败。 此外,如果我尝试用CopyFilereplaceMoveFile,然后从预览path中删除文件,复制工作,但删除再次与ERROR_FILE_NOT_FOUND失败。

 bool b = false; if (0 == CopyFile(partialresult, finala,b)) {//copy works but when try to delete the file give error DWORD err = GetLastError(); std::cout << " -> Copy Fail" << std::endl; outFile << " -> Copy Fail" << std::endl; } else { std::cout << " -> Copy Done" << std::endl; outFile << " -> Copy Done" << std::endl; if (!DeleteFile(partialresult)) DWORD err= GetLastError(); //error is "ERROR_FILE_NOT_FOUND" } 

有没有人有一些ideea这里发生了什么? 谢谢。

我已经解决了CreateFile的问题,通过将它们标记为删除,如下所示:

  CreateFile(path, GENERIC_READ,FILE_SHARE_DELETE,NULL, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE,NULL); 

谢谢你们 :)