0

有时,当我们在 Windows 文件资源管理器中双击 USB 驱动器时,会出现一条消息“驱动器中没有光盘”。在读取光盘上的任何文件之前,我想在我的应用程序中确定这个问题。

这怎么可能?

我在 Windows 平台上并使用 Visual C++ 进行开发。

4

1 回答 1

0

如果您知道驱动器号,可以尝试以下方法:

HANDLE h = CreateFile("\\\\.\\E:", 0, 0, NULL, OPEN_EXISTING, 0, NULL);
if (h == INVALID_HANDLE_VALUE)
{
    DWORD err = GetLastError();
    if (err == ERROR_FILE_NOT_FOUND)
        printf("The drive E: is not ready\n");
    else
        printf("Unknown error %lu\n", (int)err);
}
else
{
    CloseHandle(h); /* don't forget to close the handle! */
    printf("The drive E: is ready\n");
}

也就是说,在不请求读取或写入访问权限的情况下打开驱动器。仅当驱动器未准备好时,它才会失败。它适用于 USB 记忆棒。

于 2011-08-22T12:29:05.680 回答