Hallo
ich habe mal eine Frage.
Wie kann ich das Windows-Temp Verzeichnis löschen?
Habe hier im Forum ein Beispiel gefunden:
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(sDir : String; OlderThanDays : Integer) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
sFileName,sErrMess : String;
dtFileDirDate,dtNow : TDateTime;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);
dtNow := Date;
while iIndex = 0 do begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
dtFileDirDate := FileDateToDateTime(SearchRec.Time);
if trunc(dtNow - dtFileDirDate) + 1 > OlderThanDays then
begin
if SearchRec.Attr = faDirectory then begin
if (SearchRec.Name <> '' ) and
(SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
MyRemoveDir(sFileName,OlderThanDays);
end else begin
//if SearchRec.Attr <> faArchive then
// FileSetAttr(sFileName, faArchive);
if NOT DeleteFile(sFileName) then
sErrMess := SysErrorMessage(GetLastError);
writeln('Could NOT delete ' + sFileName + ' Error: ' + sErrMess);
end;
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;
//Mainproggi
var
temp_dir : string;
begin
temp_dir := SysUtils.GetEnvironmentVariable('temp');
//writeln(temp_dir);
//MyRemoveDir('D:\Temp\test\test', 3);
MyRemoveDir(temp_dir, 0);
end.
Leider erhalte ich folgende Fehlermeldung beim löschen:
Delphi-Quellcode:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt Project2.exe ist eine
Exception der Klasse EInOutError mit der Meldung '
E/A-Fehler 105' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Grüße
Aaron