![]() |
Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Kann mir da jemand weiter helfen?
Also ich will 2-Listboxen durchen und die jeweiligen Verzeichnisse und Files in einem Stammverzeichnis löschen. Wie finde ich z.B: alle *.txt datei und kann diese löschen. Weiters... wie such ich bestimmte Ordner auch wenn sie im Unterverzeichnissen drinnen sind. |
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
FindFirst, FindNext sind Dein Freund. Oder Du installierst Dir meine Komponente
![]() |
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Da ich zufällig ein Projekt offen habe in dem sich diese Funktion befindet:
Delphi-Quellcode:
procedure GetFileList(Path, Ext: String; List: TStrings);
const Attrib = faArchive + faReadOnly + faHidden; var Search: TSearchRec; begin if Path[Length(Path)] <> '\' then Path := Path + '\'; if FindFirst(Path + '*' + Ext, Attrib, Search) = 0 then repeat List.Add(Path + Search.Name); until FindNext(Search) <> 0; FindClose(Search); end; |
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Ganz so einfach ist es wohl nicht, Rekursion fehlt z.B., man addiert keine Bitmasken, Du prüfst nicht auf Länge 0 usw.
|
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Zitat:
Im OH Beispiel wird auch addiert und nicht auf Länge 0 geprüft usw. Wenn das Beispiel falsch ist, dann biegt der Fehler bei Borland bzw. Nachfolger. Was die Rekursion angeht, ok, wie gesagt, ich habe diese Funktion so aus meinem Projekt kopiert und da brauche ich es nicht. :? |
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Soll heißen: wenn Du ein Beispiel liest, das suboptimal programmiert ist, übernimmst Du es, weil es ja von Borland/Inprise/CodeGear/Embarcadero stammt? Interessante Einstellung.
|
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Ja!
Wie schon gesagt: ich habe mal den Fehler begangen mich schon mal bei dieser Funktion auf eine Diskussion einzulassen. Derjenige konnte gut meckern, konnte aber keine Zeile Verbesserung anfügen. Ok, gehen wir mal die Sache anders an: ich programmiere mit Delphi, damit ich mich um den Sch... mit API & Co. nicht kümmern muß. Ich nutze die API wenn Delphi selbst eine Funktion nicht liefert. Wenn Delphi eine Funktion liefert, dann kann ich davon ausgehen, dass sie richtig ist. Warum? Weil ich paar hundert Euro dafür ausgegeben habe. Ich kann davon ausgehen, dass alle Fallstricke, also Punkte die ich beachten soll, in der OH vermerkt sind. Und da lasse ich mich mit Kommentaren wie "Interessante Einstellung" nicht als Idioten hinstellen, weil ich die Sprache so nutze wie es in der OH empfohlen wird. Wenn du auf dem Standpunkt stehst, dass das alles Idioten bei Borland waren und du es besser machst, dann akzeptiere ich das als deine Meinung. Aber lasse bitte davon ab andere da rein zu ziehen. |
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Auch die Leute von Borland waren nicht unfehlbar.
|
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Delphi-Quellcode:
Ein paar klitzkleine Änderungen, und das wird viel stabiler. Aber bitte, Du musst das ja nicht übernehmen.
procedure GetFileList(Path, Ext: String; List: TStrings);
const Attrib = faArchive or faReadOnly or faHidden; var Search: TSearchRec; begin Assert(Assigned(List)); Path := IncludeTrailingPathDelimiter(Path); //Delphi vor der Kylix-Ära: //Path := IncludeTrailingBackslash(Path); if FindFirst(Path + '*' + Ext, Attrib, Search) = 0 then try repeat List.Add(Path + Search.Name); until FindNext(Search) <> 0; finally FindClose(Search); end; end; |
AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
Warum die Gifterei?
bekommt Euch die Sonne nicht? Vielleicht wäre es besser gewesen,gleich zu sagen, daß sich hinter faReadonly und Konsorten Bits stecken, die gesetzt werden oder eben nicht gesetzt werden, und darum kann das Addieren gut gehen, aber genauso gut kann es daneben gehen, darum sollte man es sich garnicht angewöhnen. (Aber If-Schleifen am besten noch mit if a=true sind ja auch nicht auszurotten) @Detlef Jetzt hast Du aber auch die Längenprüfung für den Path unter den Tisch fallen lassen? Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:42 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