Hallo zusammen,
ich möchte die Größe einer Datei ermitteln, welche aber von einem anderen Prozess geöffnet ist.
Dieses Thema (von 2004) habe ich hierzu gefunden ...
http://www.delphipraxis.net/24331-da...ermitteln.html
Leider funktioniert auch die Lösung 5 nicht richtig (sollte auch für von anderem Prozess geöffnete Dateien gehen). Erst wenn der andere Prozess die Datei schließt/freigibt erhalte ich einen richtigen Wert für die Dateigröße.
Vielleicht hat ja jemand einen Tipp, wie ich das Problem lösen kann.
(Ich verwende Delphi 2007, Windows7)
Grüße,
Seven
Hiermit habe ich getestet (Lösung 5) ...
Code:
function GetFileSize(const AFileName: string): Int64;
var
SearchRec: TSearchRec;
OldMode: Cardinal;
Size: TULargeInteger;
begin
Result := -1;
OldMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
if FindFirst(AFileName, faAnyFile, SearchRec) = 0 then
begin
Size.LowPart := SearchRec.FindData.nFileSizeLow;
Size.HighPart := SearchRec.FindData.nFileSizeHigh;
Result := Size.QuadPart;
SysUtils.FindClose(SearchRec);
end;
finally
SetErrorMode(OldMode);
end;
end;
Mein Kindheitstraum: Die 32bit Farbpalette als Bundstiftsammlung.