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"