![]() |
Alle deteien eines Ordners löschen???
Hallo!
Wie kann ich alle Dateien eines Ordners löschen? |
Re: Alle deteien eines Ordners löschen???
Delphi-Quellcode:
Das habe ich im StartMenuCleaner benutzt, aber manchmal scheint es Probleme zu geben - warum weiss ich nicht :gruebel:
function RemoveDirectories(Dir:string):boolean;
// This function deletes a directory and returns the result of deletion var SR:TSearchRec; Continue:boolean; begin Result:=False; Dir:=BackSlash(Dir); Continue:=FindFirst(Dir+'*.*',faAnyFile,SR)=0; while Continue do try if copy(SR.Name,1,1)='.' then System.Continue; if not DirectoryExists(Dir+SR.Name) then begin SetFileAttributes(PChar(Dir+SR.Name),FILE_ATTRIBUTE_NORMAL); DeleteFile(Dir+SR.Name); end else RemoveDirectories(Dir+SR.Name); finally Continue:=FindNext(SR)=0; end; FindClose(SR); SetFileAttributes(PChar(Dir),FILE_ATTRIBUTE_NORMAL); Delete(Dir,length(Dir),1); if length(Dir)>0 then Result:=RemoveDir(Dir); end; |
Re: Alle deteien eines Ordners löschen???
Hi!
Du könntest einen ordner über n OpenDialog auswählen, in dem die Dateien gelöscht werden sollen, dann lädtst du alle Dateien incl. ihrer Pfade in eine Listbox oder so und arbeitest dann mit DeleteFile. Es gibt gleube auch Funktionen um einen gesamten Ordner zu löschen. Hast du schonmal in der DP gesucht?? Gruß, Sascha |
Re: Alle deteien eines Ordners löschen???
Moin!
Wie bitte? Alle Dateien in eine ListBox laden? Du willst hier wirklich jemanden beibringen das er eine visuelle Komponente nehmen muss um eine Liste von Strings zu haben? Bring ihnen lieber bei wie man das ganze mit einer TStringList macht... MfG Muetze1 |
Re: Alle deteien eines Ordners löschen???
Zitat:
Gruß, Sascha |
Re: Alle deteien eines Ordners löschen???
Zitat:
|
Re: Alle deteien eines Ordners löschen???
Gelegentlich haut er das Unterverzeichnis mit weg. Also der Aufruf mit C:\Test\Hallo\, löscht C:\Test gleich mit. Aber ich kriege den Fehler nicht reproduziert (tritt immer mal so auf) und imo ist der orbige Code richtig.
|
Re: Alle deteien eines Ordners löschen???
Klingt, als würde er eine Ebene zu hoch springen, bzw. als würde sich die Funktion eben einmal zu oft aufrufen. Muss dein Programm auch unter anderen OS laufen oder nur unter Windows? In dem Fall würde ich kurzerhand zur bekannten Explorer-Löschfunktion (SHFileOperation) greifen. Da dürfte so ein Problem nicht auftreten, und du kriegst auch noch ´ne schicke Statusanzeige. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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