Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Dateien löschen

  Alt 5. Feb 2006, 14:20
bevor das ganze hier noch ewig dauert - hier eine procedure welche dir alle Dateien in eine Liste vom Typ TStrings packt, die vor einem bestimmten Datum das letzte mal geschrieben/geändert wurden.
Delphi-Quellcode:
procedure FindWrittenBeforeDate(AMask: String; ADate: TDateTime; ADest: TStrings);
  function LConfFileTimeToDateTime(const AFileTime: TFileTime): TDateTime;
  var LTime: TSystemTime;
  begin
    FileTimeToSystemTime(AFileTime, LTime);
    with LTime do
      result := EncodeDateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond, wMilliseconds);
  end;
var LSearchRec: TSearchRec;
begin
  ADest.BeginUpdate;
  if FindFirst(AMask, faAnyFile, LSearchRec) = 0 then
  begin
    repeat

      if (LSearchRec.Attr and faDirectory = 0) and
         (Trunc(LConfFileTimeToDateTime(LSearchRec.FindData.ftLastWriteTime)) < Trunc(ADate)) then
          ADest.Add(LSearchRec.Name);
    until FindNext(LSearchRec) <> 0;
  end;
  ADest.EndUpdate;
end;
Beispielaufruf um alle Dateien aus "c:\temp" zu finden die vor dem aktuellen tag das letzte mal geändert wurden.
  FindWrittenBeforeDate('c:\temp\*', Date, Memo1.Lines);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat