Einzelnen Beitrag anzeigen

blauglaser
(Gast)

n/a Beiträge
 
#14

Re: Dateien löschen

  Alt 5. Feb 2006, 18:11
Hallo Marabu,
also als Fehlermeldung kommt "Ungültiges Argument zum codieren des Datums" wenn ich das Programm in Einzellschritten durchlaufe bleibt es bei "if FileDateToDateTime(FileAge(DateFile)) <= MyAge thenif FileDateToDateTime(FileAge(DateFile)) <= MyAge then stehen wenn ich dann FileDateToDateTime vor FileAge entferne läuft das Programm auf DeleteFile(Datefile); aber die Datei wird nicht gelöscht.
Den Code für FindFile habe ich im Netz gefunden und nachträglich das Result zum testen abgeändert damit die Datei an eine Variable übergeben wird.
Delphi-Quellcode:
function FindFiles (aPath, aFindMask: String; aWithSub: Boolean):String;
Var
  FindRec: tSearchRec;
  Dat: String;
Begin
  // Wenn die Stringliste nil ist oder aPath oder aFind nicht angegeben ist
  // dann raus
  If (aPath = '') or (aFindMask = '') Then
    Exit;


  // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
  // (Oder die Funktion IncludeTrailingPathDelimiter aus der Unit SysUtils.pas verwenden)
  If aPath[Length (aPath)] <> '\Then
    aPath := aPath + '\';


  // Im aktuellen Verzeichnis nach der Datei suchen
  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // ...Ergebnis in die Stringlist einfügen
        Dat:= FindRec.Name;
        Result:=Dat;
    Until FindNext (FindRec) <> 0;


  FindClose (FindRec);


  // Wenn nicht in Unterverzeichnissen gesucht werden soll dann raus
 // If Not aWithSub Then
   // Exit;

 
  // In Unterverzeichnissen weiter suchen
 // If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
   // Repeat
     // If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // Feststellen, ob es sich um ein Verzeichnis handelt
       // If Boolean (FindRec.Attr and faDirectory) Then
          // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion)
         // FindFiles (aPath + FindRec.Name, aFindMask, aWithSub, aResult);
// Until FindNext (FindRec) <> 0;


  // FindClose (FindRec);
End;


{$R *.DFM}


procedure TForm1.Button1Click(Sender: TObject);

Var
path, Mask :String;
MyYear,MyMonth,MyDay:integer;
Datefile:String;
MyAge:TDateTime;



begin
path := Edit1.text;
Mask := Edit2.text;
MyYear := StrToInt (Edit3.Text);
MyMonth := StrToInt (Edit4.Text);
MyDay := StrToInt (Edit5.Text);
MyAge := EncodeDate(myYear, myMonth, Myday);
Datefile := FindFiles (path, Mask, True);
if FileDateToDateTime(FileAge(DateFile)) <= MyAge then
begin
DeleteFile(Datefile);
end;
end;


end.
ich hoffe das mit dem Einfügen des Quelltextes ist so Ok

freundliche Grüsse
Ralf
  Mit Zitat antworten Zitat