![]() |
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! |
Re: Dateien älter als X Tage löschen...
Hallo!
Das Dateidatum kannst du so abfragen:
Delphi-Quellcode:
DateiDatum := FileDateToDateTime(FileAge(FileName));
|
Re: Dateien älter als X Tage löschen...
Zitat:
|
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; |
Re: Dateien älter als X Tage löschen...
Zitat:
Delphi-Quellcode:
MfG
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; Binärbaum [Edit] Mein 555. Beitrag, darauf trink' ich :cheers: [/Edit] |
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 02:30 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