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