先看定义: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