GetDriveType 函數
頭文件在“winbase.h”GetDriveType 是Kernel32.dll中的一個函數,
UINT GetDriveType ( LPCTSTR lpRootPathName // root directory );
函數功能 判斷磁盤類型
參數說明 lpRootPathName包含了根目錄路徑的字符串指針
返回值 (返回到EAX中為0 1 2 3 4 5 6)
0 DRIVE_UNKNOWN未知的磁盤類型
1 DRIVE_NO_ROOT_DIR說明lpRootPathName是無效的
2 DRIVE_REMOVABLE可移動磁盤
3 DRIVE_FIXED固定磁盤
4 DRIVE_REMOTE網絡磁盤
5 DRIVE_CDROM光驅
6 DRIVE_RAMDISK為RAM
應用小例
#include <windows.h>
int main()
{
if(GetDriveType("C:\\") = = DRIVE_FIXED) (DRIVE_FIXED或者是3 )
{
MessageBox(NULL,"固定磁盤","",MB_OK);
}
system("pause");
return 0;
}
GetVolumeInformation函數
GetVolumeInformation函數返回有關文件系統和其根目錄調用中指定的卷的信息。在存在幾個常見的文件系統(如NTFS、FAT和CDFS)新的文件系統可能會影響存儲要求為應用程序,等,以便調用GetVolumeInformation可能會提供有價值的信息,您可以在您的應用程序中使用的開發中。若要計算磁盤空間和文件大小),也可以使用的某些信息此調用返回。
函數功能 獲取與一個磁盤卷有關的信息
返回值 Long,非零表示成功,零表示失敗。會設置GetLastError
GetVolumeInformation(
PChar lpRootPathName:; {磁盤驅動器代碼字符串}
PChar lpVolumeNameBuffer:; {磁盤驅動器卷標名稱}
DWORD nVolumeNameSize:; {磁盤驅動器卷標名稱長度}
PDWORD lpVolumeSerialNumber:; {磁盤驅動器卷標序列號}
DWORD var lpMaximumComponentLength:; {系統允許的最大文件名長度}
DWORD var lpFileSystemFlags:; {文件系統標識}
PChar lpFileSystemNameBuffer:; {文件操作系統名稱 如FAT,NTFS}
DWORD nFileSystemNameSize: {文件操作系統名稱長度}
)
lpFileSystemFlags Long,用于裝載一個或多個二進制位標志的變量。
對這些標志位的解釋如下:
FS_CASE_IS_PRESERVED文件名的大小寫記錄于文件系統
FS_CASE_SENSITIVE文件名要區分大小寫
FS_UNICODE_STORED_ON_DISK文件名保存為Unicode格式 FS_PERSISTANT_ACLS文件系統支持文件的訪問控制列表(ACL)安全機制 FS_FILE_COMPRESSION文件系統支持逐文件的進行文件壓縮 FS_VOL_IS_COMPRESSED整個磁盤卷都是壓縮的
應用小例:
#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;
}