Einzelnen Beitrag anzeigen

TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Wieviel Speicherplatz belegt eine Datei HDD (FAT16/32)

  Alt 5. Dez 2005, 09:21
Hi,

ich habe mal fix ein kleines Konsolen Prog geschrieben, was mir auf dem
Win98 Rechner entsprechend die Clustergröße anzeigen soll.

Delphi-Quellcode:
program HDD_INFO;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

var
  Drive : String;
  ClusterSize : Cardinal;
  SectorPerCluster : Cardinal;
  BytesPerSector : Cardinal;
  NumberOfFreeClusters : Cardinal;
  TotalNumberOfClusters : Cardinal;

begin
  { TODO -oUser -cConsole Main : Hier Code einfügen }

  If ParamStr(1) <> 'Then Begin
    Drive := ParamStr(1);
    If Drive[Length(Drive)] <> '\Then Drive := Drive+'\';

    GetDiskFreeSpace(PChar(Drive),SectorPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters);
    ClusterSize := SectorPerCluster * BytesPerSector;

    Writeln(Drive,'Clustergröße: ',ClusterSize);
  End;{if}

end.

Alles Funktioniert soweit, jedoch wenn ich mir die Clustergröße von
Partition C: anzeigen lassen will ( FAT32 ) sagt er mit die Clustergröße
sei 32K ?! Obwohl diese doch bei nur 16K liegt, habe eine Datei angelegt
mit 1Byte größe und es wird nur 16K belegt.

Bei einem Test mit einer CompactFlash Card wird mir korrekt 4096Byte Clustergröße angezeigt, bei einer Diskette 512K.

Versteh nicht so richtig was das soll, ach ja SectorPerCluster sind 64
und BytesPerSector sind 512, wird mir bei der FAT32 Partition angezeigt.

Klar das er dann auf 32K kommt, nur wieso ?!

mfg

TUX


p.s. Konsolen-Programm erstellt in Delphi 7
  Mit Zitat antworten Zitat