Пятница, 17.05.2024, 10:10
Главная Регистрация RSS
Приветствую Вас, Гость
Главная » Работа с файлами и каталогами » Информация о дисках. Часть 2
07:50

Информация о дисках. Часть 2

Информацию о файловой системе, расположенной на диске, можно получить функцией GetVolumelnformation, которая в VCL Win32 объявленна следующим образом:

function 
GetVolumelnformation(lpRootPathName: PChar;
lpVolumeNameBuffer: PChar; nVolumeNameSize: DWORD;
lpVolumeSerialNumber: PDWORD;
var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD): BOOL; stdcall;
В VCL .NET функция объявлена так:
function 
GetVolumelnformation(lpRootPathName: string; 
lpVolumeNameBuffer: StringBuilder; nVolumeNameSize: DWORD;
out lpVolumeSerialNumber: DWORD;
out lpMaximumComponentLength, lpFileSystemFlags: DWORD;
lpFileSystemNameBuffer: StringBuilder;
nFileSystemNameSize: DWORD): BOOL; external;

Параметр lpRootPathName — корневой каталог диска. Параметр lpVolumeNameBuffer — буфер размера nVolumeNameSize, в который возвращается имя диска. В параметр lpVolumeSerialNumber возвращается серийный номер диска. Учтите, что это отнюдь не заводской номер винчестера. Это чисто служебный номер логического диска. В параметр pMaximumComponentLength возвращается допустимое число символов в элементах имен файлов, т.е. число символов, которые могут размещаться между обратными слэшами. Например, если поддерживаются длинные имена, то обычно pMaximumComponentLength = 255. В параметр lpFileSystemFlags возвращаются флаги, характеризующие файловую систему на диске. Параметр может быть сочетанием следующих флагов:

FS_CASE_IS_PRESERVEDСистема сохраняет регистр, в котором заданы имена файлов, помещаемых на диск
FS_CASE_SENSITIVEСистема поддерживает чувствительность имен к регистру
FS_UNICODE_STORED_ON_DISKСистема поддерживает символы Unicode в файлах, помещаемых на диск
FS_PERSISTENT_ACLSСистема поддерживает ACL
FS_FILE_COMPRESSIONСистема поддерживает сжатые файлы
FS_VOL_IS_COMPRESSEDДанный том сжатый

В буфер lpFileSystemNameBuffer размера nFileSystemNameSize возвращается имя файловой системы, например, «FAT» или «NTFS». Обратите внимание на то, что типы параметров lpVolumeNameBuffer и lpFileSystemNameBuffer различны в VCL Win32 и в VCL.NET. В приложениях VCL .NET их тип StringBuilder. Так что организация вызова функции GetVolumelnformation в приложениях разного типа существенно различается.

Категория: Работа с файлами и каталогами | Просмотров: 961 | Добавил: PeKpyT | Рейтинг: 0.0/0
Всего комментариев: 1
1 Алексей  
0
В флешках используеться система FAT? верно? опишите пожалуйста работу на дельфи с флеш-накопителями

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]