Einzelnen Beitrag anzeigen

aaron

Registriert seit: 18. Feb 2003
202 Beiträge
 
Delphi 2007 Professional
 
#1

Temp -Ordner löschen - Winxp

  Alt 25. Jun 2008, 08:44
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
  Mit Zitat antworten Zitat