先看定義:
BOOL GetVolumeInformation(
[IN] LPCTSTR lpRootPathName, // root directory 卷所在的根目錄,如:"C:\\", 如果為NULL,表示當前目錄
[OUT] LPTSTR lpVolumeNameBuffer, // volume name buffer ,輸出參數,存放卷名緩沖區
[IN] DWORD nVolumeNameSize, // length of name buffer,卷名緩沖區長度
[OUT] LPDWORD lpVolumeSerialNumber, // volume serial number, 卷序列號
[OUT] LPDWORD lpMaximumComponentLength, // maximum file name length,最大文件文件名組件長度,隨文件系而變化
[OUT] LPDWORD lpFileSystemFlags, // file system options ,文件系統的一些屬性,通常為一些宏的組合
[OUT] LPTSTR lpFileSystemNameBuffer, // file system name buffer,說明何種文件系統,例如NTFS, FAT等
[IN] DWORD nFileSystemNameSize // length of file system name buffer,文件系統緩沖區長度
);
舉例說明,拿自己的C盤舉例:
char szVolumeNameBuf[MAX_PATH] = {0}; DWORD dwVolumeSerialNum; DWORD dwMaxComponentLength; DWORD dwSysFlags; char szFileSystemBuf[MAX_PATH] = {0}; DWORD dwFileSystemBuf = MAX_PATH; BOOL bGet = GetVolumeInformationA("C:\\", szVolumeNameBuf, MAX_PATH, &dwVolumeSerialNum, &dwMaxComponentLength, &dwSysFlags, szFileSystemBuf, MAX_PATH); printf("%s, %s",szVolumeNameBuf, szFileSystemBuf); //最后結果: Windwos, NTFS