有时,当我们在 Windows 文件资源管理器中双击 USB 驱动器时,会出现一条消息“驱动器中没有光盘”。在读取光盘上的任何文件之前,我想在我的应用程序中确定这个问题。
这怎么可能?
我在 Windows 平台上并使用 Visual C++ 进行开发。
有时,当我们在 Windows 文件资源管理器中双击 USB 驱动器时,会出现一条消息“驱动器中没有光盘”。在读取光盘上的任何文件之前,我想在我的应用程序中确定这个问题。
这怎么可能?
我在 Windows 平台上并使用 Visual C++ 进行开发。
如果您知道驱动器号,可以尝试以下方法:
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 记忆棒。