AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetLastWriteTime ohne Exception?

Ein Thema von a.def · begonnen am 22. Mär 2017 · letzter Beitrag vom 24. Mär 2017
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: GetLastWriteTime ohne Exception?

  Alt 23. Mär 2017, 00:06
Result := Now; // Something to return in case of error Und wie stellst du einen Fehler fest? Bzw. woher weiß der Anwender, dass die Funktion fehlgeschlagen ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#2

AW: GetLastWriteTime ohne Exception?

  Alt 23. Mär 2017, 00:15
Das ist in meinem Fall total unwichtig denn wenn da wo das Ergebnis angezeigt werden soll einfach nichts angezeigt (ich habe 0 draus gemacht) wird ist das absolut nicht schlimm.
Ich baue hier keine professionelle Software die 5000€ kostet
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.386 Beiträge
 
Delphi 12 Athens
 
#3

AW: GetLastWriteTime ohne Exception?

  Alt 23. Mär 2017, 03:14
Zitat:
Unnötige Dateizugriffe möchte ich nach Möglichkeit vermeiden ...
Wie wäre es, wenn du FindFile bzw. das TDirectory-Derivat verwendest?

Das wäre dann ja ein Exists und GetLastWriteTime in nur einem Zugriff.


PS: Dass diese Zeit heutzutage eventuell keinen sinnvollen Wert besitzt, ist aber bekannt?
Vorallem bei Speicherkarten, USB-Sticks, SSDs und Co. wird das im NTFS gern mal deaktiviert und gibt somit nicht das letzte Änderungsdatum der enthaltenen Dateien wieder.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Mär 2017 um 03:40 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.176 Beiträge
 
Delphi 12 Athens
 
#4

AW: GetLastWriteTime ohne Exception?

  Alt 23. Mär 2017, 08:42
Ich frage IMMER FileExist/DirectoryExist vorher ab, bevor ich auf etwas zugreife.
Weil zu oft dort Fehler passieren.

Jetzt könnte man sagen lass es immer in die Exception Laufen, und gut is,
aber da bin ich eher konservativ.

Was würde denn die moderne Entwicklung empfehlen,
eher lokale Excaptions mit Overhead, oder FileExists mit Overhead ?

Ich vermute mal das die lokale Exceptions Methode jetzt State-of-the-Art ist

EDIT:
Ich sehe Exceptions als Fehler an, nicht als Feature zur Businesslogik.

Rollo
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

AW: GetLastWriteTime ohne Exception?

  Alt 23. Mär 2017, 10:03
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;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: GetLastWriteTime ohne Exception?

  Alt 23. Mär 2017, 11:12
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.176 Beiträge
 
Delphi 12 Athens
 
#7

AW: GetLastWriteTime ohne Exception?

  Alt 24. Mär 2017, 11:02
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

Rollo

Geändert von Rollo62 (24. Mär 2017 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz