获得硬盘盘符的函数是:GetLocalDrives.在MSDN中是这样描述该函数的:
GetLogicalDrives
The GetLogicalDrives function returns a bitmask representing the currently available disk drives.
DWORD GetLogicalDrives(VOID)
Parameters
This function has no parameters.
Return Values
If the function succeeds, the return value is a bitmask representing the currently available disk drives. Bit position 0 (the least-significant bit) is drive A, bit position 1 is drive B, bit position 2 is drive C, and so on.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
通过这个函数可以得到系统中所有的盘符.如果想得到固定磁盘的个数以及盘符,就需要判断每个盘的性质.
具体的代码如下:
DWORD dDriveReturn; UINT nDiskType; LPCTSTR DriveItem; int iDriveNum;
dDriveReturn=GetLogicalDrives(); //获得磁盘驱动器位掩码 switch(dDriveReturn) { case 28: iDriveNum = 2; break; case 60: iDriveNum = 3; break; case 124: iDriveNum = 4; break; case 252: iDriveNum = 5; break; case 508: iDriveNum = 6; break; case 1020: iDriveNum = 7; break; case 2044: iDriveNum = 8; break; case 4092: iDriveNum = 9; break; }
m_iDiskNum = 0; for(int i = 2;i <= iDriveNum;i++) { switch(i) { case 2: DriveItem="D://"; break; case 3: DriveItem="E://"; break; case 4: DriveItem="F://"; break; case 5: DriveItem="G://"; break; case 6: DriveItem="H://"; break; case 7: DriveItem="I://"; break; case 8: DriveItem="J://"; break; case 9: DriveItem="K://"; break; }
nDiskType=GetDriveType(DriveItem); if(nDiskType == DRIVE_FIXED)//DRIVE_RAMDISK { m_sDriveName[m_iDiskNum]=DriveItem; //m_sDriveName:存放固定磁盘盘符的字符串数组 m_iDiskNum++;//固定磁盘数量 } }