原型:DWORD GetLogicalDrivers (void);
說明:函數傳回值是一個long型,將其用二進位顯示時,其中第0位表示A盤,第1位表示B盤,當某位為1時說明存在這個盤,即00000011表示有A盤和B盤。
看這個例子
#include <windows.h>int main(){DWORD dw;TCHAR TC1[50],TC2[50];dw = GetLogicalDrives();wsprintf(TC1,"%ld",dw);MessageBox(NULL,TC1,"十進位",MB_OK);_itoa(dw,TC2,2);MessageBox(NULL,TC2,"十進位",MB_OK);return 0;}
#include <windows.h>int main(){DWORD dw;TCHAR TC[50]; int count = 0;dw = GetLogicalDrives();while(dw != 0){ if( (dw&1) != 0) { count++; } dw >>= 1;}wsprintf(TC,"磁碟機個數:%d",count);MessageBox(NULL,TC,"我插了隨身碟的",MB_OK);return 0;}
判斷某個盤符是否存在:
#include <windows.h>int main(){ DWORD dw; TCHAR TC[50]; dw = GetLogicalDrives(); char ch; ch = 'Q'; int n = ch - 'A'; if( (dw != 0) && (dw >>= n) != 0 ) { wsprintf(TC,"%c 盤 存 在",ch); } else { wsprintf(TC,"%c 盤 不 存 在",ch); } MessageBox(NULL,TC,"判斷 該盤 是否存在",MB_OK); return 0;}
獲得盤符 並且加到CComboBox列表中
CString s;DWORD dwDrives = ::GetLogicalDrives();for (int i = 0; dwDrives != 0; i++, dwDrives >>= 1){if ((dwDrives & 0x01) == 0x01){s.Format(_T("%c:"), 'A' + i);m_wndDevices.AddString(s);}}
小的控制台程式
#include <stdio.h>#include <windows.h>int main(){char Root[] = "C:\\";char Volumelabel[20];DWORD SerialNumber;DWORD MaxCLength;DWORD FileSysFlag;char FileSysName[10];GetVolumeInformation( "C:\\",Volumelabel,255,&SerialNumber,&MaxCLength,&FileSysFlag,FileSysName,255);printf("卷標名稱(Volumelabel) = %s\n",Volumelabel);printf("卷標序號(SerialNumber) = 0x%x\n",*(&SerialNumber));printf("系統允許最大檔案名稱長度(MaxCLength) = 0x%x\n",*(&MaxCLength));printf("檔案系統標識(FileSysFlag) = 0x%x\n",*(&FileSysFlag));printf("檔案系統名稱(FileSysName) = %s\n",FileSysName);system("pause");return 0;}