AGB  ·  Datenschutz  ·  Impressum  







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

Nochmal FileAge

Ein Thema von Willie1 · begonnen am 5. Nov 2020 · letzter Beitrag vom 9. Nov 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Nochmal FileAge

  Alt 6. Nov 2020, 18:37
Joar, Datei vorhanden,
Verzeichnis richtig,
Pfad eventuell zu lang
ungültige Zeichen,
fehlende Rechte (Verzeichnis lesen dürfen),

und ein ungültiges Datum (ist zwar selten, aber kann auch mal passieren, z.B. nach Hardware-/Softwaredefekt, Virenbefall oder Stromausfall)

Zitat:
function FileAge(const fn: TFilename): TDateTime; overload
Hier hast du ein Problemchen, den Signaturen müssen/sollten eindeutig sein.

Hast du irgendwo mal die DateUtils nach deiner Unit in den Uses, in der dein FileAge deklatiert ist, dann wird das falsche FileAge verwendet.
Und da Integer sich an TDateTime zuweisen lässt (andersrum würde es knallten Float-zu-Integer) gäbe der Compiler keine Warung, wenn er statt deiner Funktion das uralte Original nimmt.

Unterschiedliche Parameter (alles was ohne DEFAULT ist) oder ein anderer Name, damit es eindeutig zugeordnet werden kann.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Nov 2020 um 19:16 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Nochmal FileAge

  Alt 7. Nov 2020, 18:03
Hier hast du ein Problemchen, den Signaturen müssen/sollten eindeutig sein.
Ok, das verstehe ich, werde es File_Age nennen. Ich muss mir ja sowieso jedes Vorkommen im Quelltext ansehen. Ich hatte vorgehabt es MyUnit.FileAge zu nennen, aber deine Argumentation überzeugt mich.
Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Nochmal FileAge

  Alt 7. Nov 2020, 22:57
Wenn du es überall mit Namespace verwendest, dann wäre es auch eindeutig. (nur einmal ohne Namespace/Unitname verwendet ... kann schief gehn)

[add]
TFile.GetCreationTime(const Path: string): TDateTime;
TFile.GetCreationTimeUtc(const Path: string): TDateTime;
TFile.GetLastAccessTime(const Path: string): TDateTime;
TFile.GetLastAccessTimeUtc(const Path: string): TDateTime;
Delphi-Referenz durchsuchenTFile.GetLastWriteTime(const Path: string): TDateTime;
TFile.GetLastWriteTimeUtc(const Path: string): TDateTime;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Nov 2020 um 23:18 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: Nochmal FileAge

  Alt 8. Nov 2020, 16:13
Jetzt will ich es wissen:
Delphi-Quellcode:
function FileAge(const fn: TFilename): TDateTime; overload;
begin
  if not FileAge(fn, Result) then Result := 0;
end;

function File_Age(const fn: TFilename): TDateTime;
begin
  try
    Result := TFile.GetCreationTime(fn);
  except
    Result := 0; //jeder Fehler wird auf 0 gesetzt!
  end;
end;
Bei der zweiten Methode muss ich IOUtils einbinden.
Sind die beiden Methoden jetzt gleichwertig? W.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Nochmal FileAge

  Alt 9. Nov 2020, 16:27
Hallo Himitsu,
danke für deine Geduld.
Willie.
  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 16:39 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