![]() |
Ordner löschen
Hi,
Ich will einen Ordner löschen, aber gewisse unter Ordner nicht, diese liest er aus nem edit Feld aus, also den Namen und dann löscht er sie net, also noch gehts nicht^^. Deswegen meine Frage wie geht das?
Delphi-Quellcode:
RemoveDir// das weiß ich.^^
|
Re: Ordner löschen
Hol tief Luft und dann stell die Frage noch einmal so, dass ich sie auch verstehe. Welcher Unterordner z.B.
|
Re: Ordner löschen
ok.^^
Also ich sags so ich möchte alles in einem Ordner löschen, kann aber definniern was nicht gelöscht wird. (z.B. im Ordner Bla sind 5 Ordner und alle außer 1 und 2 dürfen gelöscht werden) Jetzt verstanden?, ja sry falsch formuliert^^ |
Re: Ordner löschen
Wenn die Tiefe der zu löschenden Unterordner beliebig sein soll, wirst Du um eine Rekursion schwerlich herumkommen. Bedenke zudem, dass Du nur leere Ordner löschen kannst. Das heißt also, dass Du die Unterverzeichnisse durchlaufen und dort alle Dateien löschen musst. Stößt Du auf ein Unterverzeichnis, tust Du dort dasselbe.
|
Re: Ordner löschen
Ok, gut also es gibt ja einen Ordner darin sind Unterodner aber in denen selber sind höchstens Datein.
|
Re: Ordner löschen
Gut, dann wirst Du das Dreigespann FindFirst, FindNext, FindClose anwenden müssen. Beispiele findest Du bestimmt über die Forensuche. Falls Du nicht klarkommst, melde Dich nochmal.
|
Re: Ordner löschen
![]() Hab da das gefunden im Web, wenn ich im Forumsuche finde ich immer so viel. Nur wie kann ich jetzt machen, dass es gewisse Ornder nicht löscht. BeispieL: Ich hab ne Datenbank, da stehen User drinne und man kann bei denen Bilder sehen. Wenn die gelöscht werden, dann mache ich das so, dass bei beginn des PRogramms alles außer den Usern die in der DB sind gelöscht werden, also ein Vergleich und der rest muss weg. Ist das so besser um ne Lösung zu finden, so kann man ja auch einen Vergleich machen, alles was net in der DB ist wird gelöscht.(Also z.B. C:/DB/User/ darin sind dann den Usern ihre Pics, wobei jeder User einen eigenen Ordner hat, z.B. Frank und wenn Frank gelöscht wird soll beim Start des Programms auch der Ordner gelöscht werden. |
Re: Ordner löschen
In einer Liste (Delphi Hilfe: TStringList) die nicht zu löschenden Ordner eintragen und dann vor jedem löschen erstmal den Namen bzw. Pfad des Ordners aus der Liste vergleichen, fertig.
|
Re: Ordner löschen
Zitat:
![]()
Delphi-Quellcode:
Danke. :coder2:
if DeleteFile('c:\DB\') then
//ergleiche muss ich das ja dann mit der Liste... Das eintragen darein ist net das Problem, nur das vergleichen...Also muss ich wahrscheinlich auch erst ma alles darin auslesen oder?? und dann vergleichen. |
Re: Ordner löschen
Evtl. so (vorsichtig beim Ausprobieren!!):
Delphi-Quellcode:
function DeleteDirRecursive(sPath: string; DoNotDelete: TStrings): Boolean;
var Rec: TSearchRec; begin if not DirectoryExists(sPath) then begin Result := false; exit; end; sPath := IncludeTrailingPathDelimiter(sPath); if FindFirst(sPath + '*.*',faAnyFile,Rec) = 0 then begin repeat if (Rec.Attr and faDirectory) = faDirectory then begin if (Rec.Name <> '.') and (Rec.Name <> '..') and (*Vorsicht!! Man muss sich einig sein, wie man die Verzeichnisnamen einträgt (ganzer Pfad oder nicht, groß oder klein geschrieben etc.) *) (DoNotDelete.IndexOf(Rec.Name) < 0) then DeleteDirRecursive(sPath + Rec.Name,nil); end else DeleteFile(sPath + Rec.Name); until FindNext(Rec) <> 0; FindClose(Rec); end; Result := RemoveDir(sPath); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 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