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

Opening a network file using CreateFile fails with FILE_NOT_FOUND

本文关键字:文件 显示 FILE FOUND NOT 失败 创建 网络      更新时间:2023-10-16

所以我正在尝试模拟一个遥远的文件打开,它指向我的计算机,但是我不断失败,出现错误3(FILE_NOT_FOUND)。我浏览了以下有关网络使用的文档,但它也不起作用。

hFile1 = ::CreateFile(LR"(\172.17.12.172C$DevelopCodeFile.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.172C$DevelopCodeFile.txt,它奏效了。

172.17.12.172 是我的本地 IP 地址。

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

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

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