Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   GetLastWriteTime ohne Exception? (https://www.delphipraxis.net/192145-getlastwritetime-ohne-exception.html)

a.def 23. Mär 2017 10:03

AW: GetLastWriteTime ohne Exception?
 
Ich benutze jetzt TDirectory.Exists und TFile.Exists vorher.

Wenn eine Datei nicht existiert geht das damit wesentlich schneller als ohne denn ohne scheint der pro Datei etwa 1 bis 2 Sekunden im Dateisystem oder woanders noch zu suchen.

Delphi-Quellcode:
function TForm8.getPathLastWriteTime(const aPathName: string): TDateTime;
begin
 if JclFileUtils.DirectoryExists(aPathName) then
  begin
   try
    Result := FileTimeToDateTime(JclFileUtils.GetFileLastWrite(ExcludeTrailingBackslash(aPathName))); // mit "/" am Ende bekommt man kein Resultat
   except
    Result := 0;
   end;
  end
 else
  Result := 0;
end;

function TForm8.getFileLastWriteTime(const aFileName: string): TDateTime;
begin
 if JclFileUtils.FileExists(aFileName) then
  begin
   try
    Result := FileTimeToDateTime(JclFileUtils.GetFileLastWrite(aFileName));
   except
    Result := 0;
   end;
  end
 else
  Result := 0;
end;

p80286 23. Mär 2017 11:12

AW: GetLastWriteTime ohne Exception?
 
Zitat:

Zitat von Rollo62 (Beitrag 1365218)
EDIT:
Ich sehe Exceptions als Fehler an, nicht als Feature zur Businesslogik.

Ich denke, sooo schlimm ist das nicht. Wenn ich mich richtig erinnere ist für Windows eine Datei im Zugriff vorhanden, oder aber nicht, und es gibt einiges was den Zugriff verhindern kann. Ein Fileexists prüft ja nur, ob es einen Eintrag im Dateisystem für einen Dateinamen gibt. Wenn Du also weißt was Du tust, ist Fileexists brauchbar ansonsten bist Du mit der Methode "die Datei ist zu öffnen oder nicht" auf der sicheren Seite.

Gruß
K-H

Rollo62 24. Mär 2017 11:02

AW: GetLastWriteTime ohne Exception?
 
Exception: Wenn ich die nicht korrekt abfange fliegt mir u.U. wer weiss was um die Ohren.
Muss dann immer try except finally reinbauen und lokal drauf reagieren.
Kann aber viellleicht halb bearbeitet sein, halb nicht.

Da kann ich auch gleich FileExist und an der richtigen Stelle im Code korrekt reagieren.

Edit:
Nenn mich ruhig old-shool :stupid:

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz