有时,当我们在Windows文件资源管理器中双击USB驱动器时,会显示一条消息“驱动器中没有光盘”。我想在读取光盘上的任何文件之前在我的应用程序中识别此问题。
怎么可能?
我在Windows平台上并使用Visual C ++进行开发。
答案 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记忆棒。