Да, вот высведений о возможностях файловой системы на каждом устройстве:
Код
//получение свободного места на HD
procedure TForm1.UpdateDisk;
var
lpRootPathName : PChar;
lpVolumeNameBuffer : PChar;
nVolumeNameSize : DWORD;
lpVolumeSerialNumber : DWORD;
lpMaximumComponentLength : DWORD;
lpFileSystemFlags : DWORD;
lpFileSystemNameBuffer : PChar;
nFileSystemNameSize : DWORD;
FSectorsPerCluster: DWORD;
FBytesPerSector : DWORD;
FFreeClusters : DWORD;
FTotalClusters : DWORD;
begin
lpVolumeNameBuffer := '';
lpVolumeSerialNumber := 0;
lpMaximumComponentLength:= 0;
lpFileSystemFlags := 0;
lpFileSystemNameBuffer := '';
try
GetMem(lpVolumeNameBuffer, MAX_PATH + 1);
GetMem(lpFileSystemNameBuffer, MAX_PATH + 1);
nVolumeNameSize := MAX_PATH + 1;
nFileSystemNameSize := MAX_PATH + 1;
lpRootPathName := PChar(DriveComboBox1.Drive+':\');
if GetVolumeInformation( lpRootPathName, lpVolumeNameBuffer,
nVolumeNameSize, @lpVolumeSerialNumber, lpMaximumComponentLength,
lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize )
then
begin
Volume_Name.Caption := lpVolumeNameBuffer;
Volume_Serial.Caption := IntToHex(HIWord(lpVolumeSerialNumber), 4) + '-' + IntToHex(LOWord(lpVolumeSerialNumber), 4);
File_System_Name.Caption:= lpFileSystemNameBuffer;
GetDiskFreeSpace( PChar(DriveComboBox1.Drive+':\'), FSectorsPerCluster, FBytesPerSector, FFreeClusters, FTotalClusters);
end;
finally
FreeMem(lpVolumeNameBuffer);
FreeMem(lpFileSystemNameBuffer);
end;
Sectors_PerCluster.Caption:=IntToStr(FSectorsPerCluster);
Bytes_PerSector.Caption:=IntToStr(FBytesPerSector);
end;
procedure TForm1.DriveComboBox1Change(Sender: TObject);
begin
UpdateDisk;
end;