确定驱动器中有光盘

时间:2011-08-22 12:17:00

标签: windows winapi visual-c++ drive

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

怎么可能?

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

1 个答案:

答案 0 :(得分: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记忆棒。