Entwickler-Ecke

Dateizugriff - Dateigrösse erfassen ...!


Hochhaus - Mo 19.11.12 16:27
Titel: Dateigrösse erfassen ...!
Hallo allerseits !

gibt es eine einfache Möglichkeit, um an die Dateigrösse zu kommen ? Der folgende Code, den ich bisher verwendet habe, scheint mir als zu kompliziert.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
    AssignFile(F, DlgOpen.FileName);
    Reset(F);
    If FileSize(F) > 100000000 Then Begin
     CloseFile(F);
     MessageDlg('Fehler: Datei ist zu gross !',
     mtError, [mbOk], 0);
     Exit;
    End;
    CloseFile(F);


Besten Dank für die Hilfe !


Hochhaus

P.S. Die Methode versagt, wenn ein Schreibschutz auf dem Laufwerk ist !!


Mathematiker - Mo 19.11.12 16:38

Hallo,

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var sr: TSearchRec;
begin
  Result := 0;
  if FindFirst(Filename, faAnyFile and not faDirectory, sr) = 0 then
  begin
    Result := sr.Size;
    FindClose(sr);
  end;
end;


Beste Grüße
Mathematiker


Hochhaus - Mo 19.11.12 17:22

Danke !

Es funktioniert, auch mit Schreibschutz.


Hochhaus


WasWeißDennIch - Mo 19.11.12 18:49

http://docwiki.embarcadero.com/Libraries/XE2/de/System.FileMode
Zitat:
Hinweis: Setzen Sie FileMode unbedingt zurück, bevor Sie Reset für eine schreibgeschützte Datei aufrufen. Auch wenn die Datei nur gelesen werden soll, verursacht der Standardwert von FileMode (Schreib-/Lesezugriff), dass das Öffnen einer schreibgeschützten Datei fehlschlägt.

Also hätte das Setzen von FileMode auf 0 auch geholfen ;)