使用CreateFile打开网络文件失败,并显示FILE_NOT_FOUND

时间:2015-04-13 06:59:40

标签: c++ windows winapi createfile

所以我试图模拟一个远程文件打开,它指向我的计算机,但是我一直在使用错误3(FILE_NOT_FOUND)失败。我对网络使用情况进行了以下documentation,但它也没有用。

hFile1 = ::CreateFile(LR"(\\172.17.12.172\C$\Develop\Code\File.txt)", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);
if (INVALID_HANDLE_VALUE == hFile1)
{
    LOG_ERROR(L"Failed opening file with: " << GetLastError());
    break;
}
  1. FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE标志用于稍后使用的GetFileInformationByHandle,我比较文件路径。
  2. 我尝试使用记事本打开\\172.17.12.172\C$\Develop\Code\File.txt,但它确实有效。
  3. 172.17.12.172是我的本地IP地址。

1 个答案:

答案 0 :(得分:1)

您的文件名的语法很好。错误代码为FILE_NOT_FOUND而不是其他错误意味着找到了目录,但找不到该目录中的文件。

您应该可以使用CreateFile打开包含该表单路径的文件。如果您真的可以使用记事本打开该路径的文件,那么只要您传递相同的文件名,就可以使用CreateFile执行相同的操作。

所以最合理的解释是你只是做了一个印刷错误。我认为没有理由超越FILE_NOT_FOUND建议的明显结论。没有该名称的文件。