1,涉及的API
原型:
DWORD GetLogicalDrives(void);
说明:
返回值是一个32位的DWORD值,每一位分别代表盘符为某个字母的磁盘是否存在,为1则存在。
这样其实只有低26位是我们关心的,因为a~z只有26个嘛。
判断A盘是否存在,就用000......00000001跟这个返回值&,为真就存在,否则就不存在。
同理,B盘就用000......00000000010。
要得到这个做运算的值也很简单,求出A到你想知道的盘符相差几,把1左移几就可以了。
2,实现
BOOL IsDiskExist(CHAR cDiskName)
{
DWORD dwDrivers;
int i = cDiskName - 'A';
//dwDrivers的每一个二进制位表示对应的驱动器是否存在。
dwDrivers = GetLogicalDrives();
//判断当前位是否有驱动器
if ((dwDrivers & (1<<(i)))!=0)
{
return TRUE;
}
return FALSE;
}
工程只要含windows.h就可以。