如何查找设备上是否有指定盘符
可以通过读取系统注册表或调用 API函数来实现,下面是以查找磁盘(Hard Disk)设备为例,通过API函数查询指定存储设备的程序片段。
STOREINFO StoreInfo;
memset(&StoreInfo, 0, sizeof(STOREINFO)); //切记定义后要初始化,否则后面将查找不到任何存储器
StoreInfo.cbSize = sizeof(STOREINFO);
HANDLE hDevice = FindFirstStore( &StoreInfo );
iResult=0;
if( INVALID_HANDLE_VALUE != hDevice )
{
do
{
//判断是否为指定存储设备
if( 0 == wcscmp( StoreInfo.szStoreName, TEXT("IDE Hard Disk Drive") ) )
{
iResult=1;
//如果查找到指定存储设备,则打印信息到调试串口
RETAILMSG( 1, (TEXT("Hard Disk%s has been inserted/n") ,
StoreInfo.szDeviceName ));
hThread = CreateThread(NULL,0,FileTestThread,(LPVOID)TEXT("//Hard Disk"),0,&dwThreadID);
SetThreadPriority(hThread, THREAD_PRIORITY_LOWEST);//*/
break ;
}
}while( FindNextStore( hDevice, &StoreInfo ) );
}
需要注意的是:存储器名字("IDE Hard Disk Drive")需要通过查找平台注册表platform.reg文件得知。注册表中存储器的参数中:“Name”即是指这里的szStoreName,而注册表的"Folder"是指挂载目录名“Hard Disk”。
很多初学者都会将这两个命名混淆哦!