首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CopyFile成功,MoveFile在相同参数下失败- C++

CopyFile成功,MoveFile在相同参数下失败- C++
EN

Stack Overflow用户
提问于 2017-07-25 10:32:37
回答 1查看 389关注 0票数 1

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

代码语言:javascript
复制
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;
}

复制工作正常,但是如果我用MoveFile替换MoveFile(不改变路径),代码0x20 (MSDN文档 )会失败。此外,如果我尝试用ERROR_FILE_NOT_FOUND.替换MoveFile,然后从预览路径中将文件替换为DeleteFile,则复制工作,但删除再次失败。

代码语言:javascript
复制
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"
  }

有人知道这里发生了什么吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-26 03:59:42

我解决了CreateFile的问题,在进程完成后将它们标记为delete,如下所示:

代码语言:javascript
复制
 CreateFile(path, GENERIC_READ,FILE_SHARE_DELETE,NULL, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE,NULL);

(谢谢大家:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45300716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档