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