GetVolumeInformation函数返回有关指定根目录的文件系统和卷的信息。
BOOL GetVolumeInformation(
LPCTSTR 【lpRootPathName】, | //文件系统根目录的地址 |
LPTSTR 【lpVolumeNameBuffer】, | //卷的名称地址 |
DWORD 【nVolumeNameSize】, | // length of 【lpVolumeNameBuffer】 |
LPDWORD 【lpVolumeSerialNumber】, | //卷序列号的地址 |
LPDWORD 【lpMaximumComponentLength】, | //系统最大文件名长度的地址 |
LPDWORD 【lpFileSystemFlags】, | //文件系统标志的地址 |
LPTSTR 【lpFileSystemNameBuffer】, | //文件系统名称的地址 |
DWORD 【nFileSystemNameSize】 | //长度【lpFileSystemNameBuffer】 |
); |
参数
【lpRootPathName】
指向包含要描述的卷的根目录的字符串。如果此参数为NULL,则使用当前目录的根。如果此参数是UNC名称,则必须使用其他反斜杠来执行此操作。例如,您可以将\\\\ MyServer \\ MyShare指定为\\\\ MyServer \\ MyShare \\。
【lpVolumeNameBuffer】
指向接收指定卷名称的缓冲区。
【nVolumeNameSize】
指定卷名称缓冲区的长度(以字符为单位)。如果未提供卷名称缓冲区,则忽略此参数。
【lpVolumeSerialNumber】
指向接收卷序列号的变量。如果不需要序列号,则该参数可以为NULL。
【lpMaximumComponentLength】
指向双字值,它接收指定文件系统支持的文件名组件的最大长度(以字符为单位)。文件名组件是反斜杠之间的文件名部分。
存储在* 【lpMaximumComponentLength】指向的变量中的值用于指示指定的文件系统支持长名称。例如,对于支持长名称的FAT文件系统,该函数存储值255,而不是先前的8.3指示符。在使用新技术文件系统的系统上也可以支持长名称。
【lpFileSystemFlags】
指向接收与指定文件系统关联的标志的双字。此参数可以是以下标志的任意组合,但有一个例外:FS_FILE_COMPRESSION和FS_VOL_IS_COMPRESSED是互斥的。
值 | 含义 |
FS_CASE_IS_PRESERVED | 如果设置了此标志,文件系统会在磁盘上放置名称时保留文件名。 |
FS_CASE_SENSITIVE | 如果设置此标志,则文件系统支持区分大小写的文件名。 |
FS_UNICODE_STORED_ON_DISK | 如果设置了此标志,则文件系统会在文件名中显示在磁盘上时支持Unicode。 |
FS_PERSISTENT_ACLS | 如果设置此标志,文件系统将保留并强制执行A??CL。例如,NTFS保留并强制执行A??CL,FAT不存在。 |
FS_FILE_COMPRESSION | 文件系统支持基于文件的压缩。 |
FS_VOL_IS_COMPRESSED | 指定的卷是压缩卷;例如,一个DoubleSpace卷。 |
【lpFileSystemNameBuffer】
指向接收文件系统名称(如FAT或NTFS)的缓冲区。
【nFileSystemNameSize】
指定文件系统名称缓冲区的长度(以字符为单位)。如果不提供文件系统名称缓冲区,则忽略此参数。
返回值
如果检索到所有请求的信息,则返回值不为零。
如果不是全部请求的信息都被检索,则返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
如果您尝试获取有关没有软盘的软盘驱动器或没有光盘的CD-ROM驱动器的信息,系统将显示一个消息框,要求用户插入软盘或光盘, 分别。要防止系统显示此消息框,请使用SEM_FAILCRITICALERRORS调用SetErrorMode功能。
FS_VOL_IS_COMPRESSED标志是基于卷的压缩的唯一指标。不改变文件系统名称来表示压缩。例如,这个标志在DoubleSpace卷上设置。使用基于卷的压缩,整个卷被压缩或不被压缩。
FS_FILE_COMPRESSION标志指示文件系统是否支持基于文件的压缩。通过基于文件的压缩,可以压缩或不压缩各个文件。
FS_FILE_COMPRESSION和FS_VOL_IS_COMPRESSED标志是互斥的;两个位都不能回来设置。
由【lpMaximumComponentLength】指向的DWORD变量中存储的最大组件长度值是卷支持长于正常FAT(或其他文件系统)文件名的唯一指示符。文件系统名称不会更改,表示支持长文件名。
GetCompressedFileSize函数获取文件的压缩大小。GetFileAttributes功能可以确定单个文件是否被压缩。
也可以看看
GetCompressedFileSize, GetFileAttributes, SetErrorMode, SetVolumeLabel