Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Größe auf dem Datenträger ermitteln.

  Alt 19. Okt 2004, 12:41
Hai Steve,

danke für den Hinweis (hihi ich kompriemiere nie die Laufwerke, darum habe ich das nicht bedacht).
So müsste es jetzt aber stimmen oder?
Delphi-Quellcode:
function GetRealFileSize (const aFileName : String) : Cardinal;
var
  ClusterSize: Cardinal;
  SectorPerCluster : Cardinal;
  BytesPerSector : Cardinal;
  NumberOfFreeClusters : Cardinal;
  TotalNumberOfClusters: Cardinal;
  filesize : Cardinal;
  realsize : Cardinal;
begin
  filesize := GetCompressedFileSize(PAnsiChar(aFileName),@filesize);
  GetDiskFreeSpace(PChar(afilename[1] +':\'), SectorPerCluster,BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters);
  ClusterSize:=SectorPerCluster * BytesPerSector;
  if not ((filesize MOD clustersize) = 0) then
  begin
   realsize := ((filesize div clustersize) * clustersize) + clustersize
  end
  else
  begin
   realsize := filesize;
  end;
  result := realsize;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  RealFileSize : Cardinal;
begin
  if (OpenDialog1.Execute) then
  begin
    RealFileSize := GetRealFileSize (OpenDialog1.FileName);
    ShowMessage (IntToStr (RealFileSize));
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat