c++ - U 盘上的 "Access is Denied"CreateFile()

标签 c++ winapi low-level

我的目标是读取 USB 内存棒的所有字节。

我尝试使用 CreateFile()fopen() 打开“D:”,但出现错误:

"Access is Denied"

HANDLE disk = CreateFile("D:", 
                         GENERIC_READ,
                         FILE_SHARE_READ,        
                         NULL,
                         OPEN_EXISTING,
                         FILE_ATTRIBUTE_NORMAL,
                         NULL);

    if (disk == INVALID_HANDLE_VALUE) {
        printf ("%d\n", GetLastError());
        return -1;
    }

此代码打印 5(“访问被拒绝”)。

我使用的是 Windows 8 和 C++。

有人可以向我解释为什么会出现错误吗?

最佳答案

您的文件路径无效。

要打开带有字母D的设备,您应该使用以下路径:

“\\.\D:”

这在 the docs 中有解释。

关于c++ - U 盘上的 "Access is Denied"CreateFile(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59215587/

相关文章:

c - 获取窗口的当前尺寸,无论最小/正常/最大化状态如何

c++ - Dev C++ 中用于 win32 程序的 drawtext 选项

Python:编程 8051

自定义堆/内存分配范围

c++ - 时间复杂度 - 大 O - 显示不在文件中的间隔中的数字

c++ - 缩短 If 语句并减少冗余

c++构造函数中可移动类型的右值

c++ - getter 方法中的 Const 限定符

c++ - Media Foundation 将音频流添加到视频文件

windows - 分析 .exe/.dll (Windows PE) 文件中的代码膨胀