1、首先看函数GetVolumeInformationA
BOOL GetVolumeInformationA(
[IN] LPCTSTR lpRootPathName, //卷所在的根目录,如:"C:\\", 如果为NULL,表示当前目录
[OUT] LPTSTR lpVolumeNameBuffer, // 输出参数,存放卷名缓冲区
[IN] DWORD nVolumeNameSize, // 卷名缓冲区长度
[OUT] LPDWORD lpVolumeSerialNumber, // 卷序列号
[OUT] LPDWORD lpMaximumComponentLength, // 最大文件文件名组件长度,随文件系而变化
[OUT] LPDWORD lpFileSystemFlags, // 文件系统的一些属性,通常为一些宏的组合
[OUT] LPTSTR lpFileSystemNameBuffer, // 说明何种文件系统,例如NTFS, FAT等
[IN] DWORD nFileSystemNameSize // 文件系统缓冲区长度
);
举例说明,这样用系统F盘来演示:
char szVolumeNameBuf[MAX_PATH] = {0};
DWORD dwVolumeSerialNum;
DWORD dwMaxComponentLength;
DWORD dwSysFlags;
char szFileSystemBuf[MAX_PATH] = {0};
BOOL bGet = GetVolumeInformationA("F:\\",
szVolumeNameBuf,
MAX_PATH,
&dwVolumeSerialNum,
&dwMaxComponentLength,
&dwSysFlags,
szFileSystemBuf,
MAX_PATH);
打印结果:szVolumeNameBuf: "娱乐" dwVolumeSerialNum: 18467 dwMaxComponentLength: 255 dwSysFlags: 65470719 szFileSystemBuf: NTFS