Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien älter als X Tage löschen... (https://www.delphipraxis.net/43045-dateien-aelter-als-x-tage-loeschen.html)

wk2001 28. Mär 2005 02:12


Dateien älter als X Tage löschen...
 
Hallo,

wie würdet Ihr dieses Problem am elegantesten lösen?
Ich hab logfiles und will automatisch logs, die älter als 7 Tage sind z.B. löschen...

Wie ich Dateien mit FindFirst / FindNext finde ist mir klar, nur wie ich das mit der Datumsabfrage optimal löse weiss ich nicht.

Danke für Eure Hilfen!

toms 28. Mär 2005 02:22

Re: Dateien älter als X Tage löschen...
 
Hallo!

Das Dateidatum kannst du so abfragen:

Delphi-Quellcode:
DateiDatum := FileDateToDateTime(FileAge(FileName));

wk2001 28. Mär 2005 02:24

Re: Dateien älter als X Tage löschen...
 
Zitat:

Zitat von toms
Hallo!

Das Dateidatum kannst du so abfragen:

Delphi-Quellcode:
DateiDatum := FileDateToDateTime(FileAge(FileName));

Und wie kann ich zwischen zwei Daten den Unterschied in Tagen bestimmen?

toms 28. Mär 2005 02:28

Re: Dateien älter als X Tage löschen...
 
Beispiel:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   First, Today: TDateTime;
   Days: Integer;
begin
   First := StrToDate(FirstEdit.Text);
   Today := StrToDate(TodayEdit.Text);
   Days := DaysBetween(First, Today);
   ResultEdit.Text := IntToStr(Days);
end;

Binärbaum 28. Mär 2005 02:29

Re: Dateien älter als X Tage löschen...
 
Zitat:

Zitat von wk2001
Zitat:

Zitat von toms
Hallo!

Das Dateidatum kannst du so abfragen:

Delphi-Quellcode:
DateiDatum := FileDateToDateTime(FileAge(FileName));

Und wie kann ich zwischen zwei Daten den Unterschied in Tagen bestimmen?

Delphi-Quellcode:
var Datum1, Datum2: TDateTime;
begin
  //hier Datum einlesen z.B.:
  // Datum2:= Now; und dann dateidatum für Datum1
  if (Datum2- Datum1)>7 then ShowMessage('Älter als 7 Tage')
    else ShowMessage('Noch nicht älter als 7 Tage');
end;
MfG
Binärbaum

[Edit]
Mein 555. Beitrag, darauf trink' ich :cheers:
[/Edit]

wk2001 28. Mär 2005 12:20

Re: Dateien älter als X Tage löschen...
 
Danke für Eure Hilfen...!

@Binärbaum: Prost und herz. Glückwunsch :P

Hier nochmal mein Code im Endeffekt, falls jemand noch danach sucht.

Delphi-Quellcode:
procedure DeleteOldLogFiles(days : integer = 7);
var
  fileDate : TDateTime;
  res : TStrings;
  i : integer;
begin
 res := TStringList.Create;
 FindFiles(ExtractFilePath(ParamStr(0)), '*.log', False, res);
  for i := 0 to (res.count - 1) do
    begin
      fileDate := FileDateToDateTime(FileAge(res.Strings[i]));
      if (Now - fileDate) > days then DeleteFile(res.Strings[i]);
    end;
 res.Free;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.

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