So ich denke jetzt müsste es passen. Allerdings bekomme ich immer noch die selbe Fehlermeldung. Hier der aktuelle Code.
Delphi-Quellcode:
//Delete all files/dirs in TempDir which ones are older than x days
program TempCleaner;
{$APPTYPE CONSOLE}
uses Windows,SysUtils;
//Function
Function MyRemoveDir(TargetDir : String; OlderThanDays : Integer) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
FoundName,ErrMess : String;
DateFileDirDate,DateNow : TDateTime;
begin
Result := False;
TargetDir := TargetDir + '\*.*';
iIndex := FindFirst(TargetDir, faAnyFile, SearchRec);
DateNow := Date;
while iIndex = 0 do
begin
FoundName := ExtractFileDir(TargetDir)+'\'+SearchRec.Name;
DateFileDirDate := FileDateToDateTime(SearchRec.Time);
if trunc(DateNow - DateFileDirDate) + 1 > OlderThanDays then
begin
if SearchRec.Attr = faDirectory then
begin
if (SearchRec.Name <> '' ) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
MyRemoveDir(FoundName,OlderThanDays);
end;
end else
begin
if NOT DeleteFile(FoundName) then
begin
ErrMess := SysErrorMessage(GetLastError);
writeln('Could NOT delete ' + FoundName + ' Error: ' + ErrMess);
end;
end;
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(TargetDir));
Result := True;
end;
//Mainproggi
var
temp_dir : string;
begin
temp_dir := SysUtils.GetEnvironmentVariable('temp');
//writeln(temp_dir);
//MyRemoveDir('D:\Temp\test\test', 1);
MyRemoveDir(temp_dir, 3);
end.
Habe ich doch noch was vergessen ?