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