Einzelnen Beitrag anzeigen

SevenOfNine

Registriert seit: 11. Jan 2007
Ort: Giessen, Mittelhessen
41 Beiträge
 
Delphi 7 Professional
 
#1

FileSize einer von anderem Prozess geöffneten Datei

  Alt 19. Mär 2017, 09:25
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.
  Mit Zitat antworten Zitat