WinApi Функция GetVolumeInformation
Описание
function GetVolumeInformation(lpRootPathName: PChar;
lpVolumeNameBuffer: PChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD;
var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD): BOOL;
Возвращает информацию о файловой системе и объеме корневой директории(обьеме тома файловой системы).
Параметры:
lpRootPathName: Строка содержащая путь к корневой директории. Если параметр равен NULL, то будет использована текущая корневая директория. Если парметр является именем UNC, то после параметра должна обязательно следовать косая черта, напрмер: "\MyServer\MyShare" должен быть определен как "\MyServer\MyShare\".
lpVolumeNameBuffer: Строка содержащая буфер имени тома.
nVolumeNameSize: Содержит длинну в символах имени тома. Этот параметр игнорируется если параметр имени тома не поставлен.
lpVolumeSerialNumber: Указатель на переменную которая получает серийный номер тома. Этот парметр может быть равен NULL.
lpMaximumComponentLength: Указатель на переменную, возвращающую максимальную длинну имени файла, поддерживаемую текущей файловой системой. Параметр предназначен для того чтобы указать что текущей файловой системой используются длинные имена. Например для FAT поддерживающей длинные имена, функция возвращает величину 255.
lpFileSystemFlags: Указатель на переменную которая возвращает флаги связанные с текущей файловой системой. Этот параметр может быть комбинацией любых флагов кроме FS_FILE_COMPRESSION и FS_VOL_IS_COMPRESSED которые взаимно исключены:
FS_CASE_IS_PRESERVED - Если этот флаг установлен, файловая система сохраняет имя файла на диске.
FS_CASE_SENSITIVE - Если этот флаг установлен, файловая система поддерживает контекстно-зависимые имена файлов.
FS_UNICODE_STORED_ON_DISK - Если этот флаг установлен, файловая система поддерживает имена файлов в Unicode.
FS_PERSISTENT_ACLS - Если этот флаг установлен, файловая система сохраняет и осуществляет ACL. Например, NTFS сохраняет и осуществляет ACL,а FAT нет.
FS_FILE_COMPRESSION - Файловая система поддерживает сжатие файлов.
FS_VOL_IS_COMPRESSED - Том является сжатым; например DoubleSpace.
lpFileSystemNameBuffer: Указатель на буфер возвращающий имя файловой системы(как например, FAT или NTFS).
nFileSystemNameSize: Параметр определяет длинну буфера имени файловой системы в символах.
Возвращаемые значения
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.
Замечания:
Если попытаться получить информацию о дисководе или CD-ROM'е не имеющих вставленных носителей информации, то система отображет диалог, прося пользователя вставить дискету или компакт-диск.
Чтобы помешать системе, вызовите функцию SetErrorMode с флагом SEM_FAILCRITICALERRORS.
Флаг FS_VOL_IS_COMPRESSED является единственным индикатором сжатия тома.
Флаг FS_FILE_COMPRESSION указывает, поддерживает ли файловая система сжатие файлов.
Функция GetCompressedFileSize получает размер сжатого файла. Функция GetFileAttributes может определить чем сжат файл
Материал взят из:
Русская спpавка по Windows API