![]() |
Windows Temp komplett löschen !?! wie ?
Hiho Leute!
ich möchte den Inhalt von meinem windows/Temp Ordner komplett löschen !!! (C:\Windows\Temp) Hier mein Code! (also der Inhalt wird schon außer den Unterverzeichnissen komplett gelöscht! Diese möchte ich aber auch löschen!!!
Delphi-Quellcode:
so... kann mir jemand sagen, wieso die Unterverzeichnisse nicht gelöscht werden ? Der Rest klappt ja!
uses
... ,ShellAPI; var Form1: TForm1; fos: TSHFileOpStruct; function DelDir(dir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_DELETE; fFlags := FOF_SILENT or FOF_NOCONFIRMATION; pFrom := PChar('C:\Windows\Temp\' + #0); end; Result := (0 = ShFileOperation(fos)); end; procedure DeleteAll(Dir, Files : string); var SearchRec : TSearchRec; begin if FindFirst(Dir+Files, faAnyFile, SearchRec) = 0 then begin DeleteFile(SearchRec.Name); while FindNext(SearchRec) = 0 do DeleteFile(Dir + SearchRec.Name); end; FindClose(SearchRec); end; procedure TForm1.Button2Click(Sender: TObject); var dir : string; begin DelDir(dir); DeleteAll( 'C:\Windows\Temp\' , '*.*' ); RemoveDir('C:\Windows\Temp\'); end; end. danke Trouble_Maker [EDIT=Luckie]Delphi-Tags hinzugefügt. Beim nächsten mal bitte selber machen, danke[/EDIT] |
Wird der Inhalt der Unterverzeichnisse auch gelöscht ? :?:
|
nein wird er nicht!!!
HILFEEE ^^ |
Soll das bei jedem Systemstart ausgeführt werden? Dann kannst du ja auch ein Batchfile schreiben, das du in den Autostartordner legst, etwa so (ist auch bei mir so):
Code:
@echo off
deltree /y c:\windows\temp |
Hi,
ich bitte dich dein Code absofort in [ delphi] [ /delphi] einzupacken (ohne die Leerzeichen). Danke. Ich habe deinen Source einwenig verändert:
Delphi-Quellcode:
Änder das mal und sage uns mal was ausgegeben wird...
uses
{...} ,ShellAPI; var Form1: TForm1; function DelDir(dir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_DELETE; // fFlags := FOF_SILENT or FOF_NOCONFIRMATION; // nimm das mal heraus, um zu sehen, was er dir ausgibt pFrom := PChar(dir + #0#0); end; Result := (0 = ShFileOperation(fos)); end; procedure DeleteAll(Dir, Files : string); var SearchRec : TSearchRec; begin if FindFirst(Dir+Files, faAnyFile, SearchRec) = 0 then begin DeleteFile(SearchRec.Name); while FindNext(SearchRec) = 0 do DeleteFile(Dir + SearchRec.Name); end; FindClose(SearchRec); end; procedure TForm1.Button2Click(Sender: TObject); var dir : string; begin // DelDir(dir); ? Was machst du denn hier ? dir ist noch leer!! dir := 'C:\Windows\Temp\'; // sicher, dass es nicht "C:\WINDOWS\..." ist? DelDir(dir); DeleteAll(dir, '*.*' ); // RemoveDir(dir); Hast du doch schon einmal gemacht... :? end; Desweiteren: such mal in der CodeLibrary nach "DoFileWork". Die Funktion von sakura kann das ganz gut und macht auch keine Probleme... Chris |
hi...
ja ok mach ich ab jetzt!!! Ich wollt immer schon wissen, wie ihr das "graue" um den Code bekommt *gg* Leider kann ich deinen Code jetzt leider nich austesten, weil ich an einem anderen PC bin! Aber morgen poste ich, ob es geklappt hat! Und ich möchte das ncih bei jeden Systemstart machen! Nur wenn man einen Button klickt bis dann Trouble_Maker |
Hoi,
dazu gibt es neben dem Run auch noch den RunOnce "Ordner" in der Registry. |
hmm... so hab den Code mal ausgetestet, so wie du ihn gepostet hast, aber es passiert das gleiche wie vorher !!!
Also keine Fehlermeldung oder so! Aber die Unterverzeichnisse und die in den Unterverzeichnissen liegenden Dateien werden nicht gelöscht!!! ?!?! Trouble_Maker |
Zitat:
Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz