Visual C++ 中的创建文件路径错误
CreateFile path error in Visual C++
for (int i = 0; i < 1000; i++)
{
sprintf_s(text, "Text from process %drn", GetCurrentProcessId());
HANDLE hFile = CreateFile(_T("\\.\Device\HarddiskVolume2\dev\test\test.txt"), GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_ALWAYS, 0, 0);
if (hFile == INVALID_HANDLE_VALUE)
{
DWORD err = GetLastError();
cout << "Error opening file " << GetLastError() << " at index " << i << endl;
break;
}
SetFilePointer(hFile, GetFileSize(hFile, NULL), NULL, FILE_BEGIN);
DWORD bytes;
WriteFile(hFile, text, strlen(text), &bytes, NULL);
CloseHandle(hFile);
}
我正在尝试使用实际设备名称打开写入\设备\硬盘卷 2 映射到 c:\该文件夹已存在于 C 盘中我在打开文件
错误代码 3 是 ERROR_PATH_NOT_FOUND
.您看到它的原因是\.DeviceHarddiskVolume2
是原始设备的路径。如果使用该路径,则无法再访问文件系统。该路径为您提供的是访问原始磁盘扇区。
如果必须使用\.DeviceHarddiskVolume2
来标识驱动器,则需要首先通过某种方式或其他方式转换为映射的驱动器号或卷的 DOS 设备路径。在您的情况下,后者将是\.HarddiskVolume2
请参考ERROR_PATH_NOT_FOUND
3 (0x3)
系统找不到指定的路径。
因此,请尝试检查路径是否可用..\Device\HarddiskVolume2\dev\test\test.txt
。这是因为程序找不到路径
或者试试这个:
..\Device\HarddiskVolume2\dev\test\test.txt
如果路径与 EXE 位于同一目录中。
原因
创建文件时,编译器会查看exe
文件所在目录中的路径。如果未找到,则程序将签入运行该程序的Drive
。
还要尝试从创建文件获取一些信息。
希望这对你有帮助。
相关文章:
- 从函数角度看ID到文件路径的内部与外部映射
- 在C++中设置基于操作系统的文件路径
- Windows 非 ASCII 文件路径
- 非 ASCII 文件路径窗口
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- 如何为文件路径使用变量?
- 包括 VS Code 上的完整文件路径
- 如何使用提升获取当前文件路径?
- 如何在 c++ 中获取当前文件路径?
- 保存json文件后如何返回文件路径
- 从 C++ 中的文件路径中提取文件名
- 是否可以将文件路径传递给Qt中的setStyleSheet()
- 无法转换 .CATPart 文件.错误:输入文件路径似乎包含不支持的字符
- 在结构函数之间传递文件路径 C++ 编辑:修复LNK2019错误
- 提供依赖于输入的程序的文件路径
- 从 QFileSystemModel 中的文件路径和文件名获取 QModelIndex
- 如何更改变量文件名的文件路径?
- cmake:包括vs vs add_subDirectory:相对标头文件路径
- 在OSX中使用CGDisplayStream存储屏幕记录的特定文件路径
- 如何在另一个系统上启用文件路径