Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen (https://www.delphipraxis.net/167152-bestimmte-dateien-und-verzeichnise-einem-stammverzeichnis-loeschen.html)

t0mmy 16. Mär 2012 10:58

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
So danke für deine hilfe (FileSearch) hat mir sehr dabei geholfen.
Wie stelle ich das nun mit den Ordnern an, also ich möchte in einem Stammverzeichnis nach bestimmten Ordnern suchen und diese löschen.

DeddyH 16. Mär 2012 11:02

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Redest Du jetzt von der Komponente? Wie sind die "bestimmten Ordner" denn definiert?

t0mmy 16. Mär 2012 11:59

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Nein die komponente hab ich nicht gemeint ich hab bissal was daraus verwendet können und mir selbst was zusammengestöpselt... wollt eure unterhaltung in meinem thread nicht stören. jetzt wüsst ich gern wenn ich einen Ordner namens "Ordner1" in einem Verzeichnis löschen auch wenn er unterverzeichnisse hat in dem dieser Ordner enthalten sein könnte.

p80286 16. Mär 2012 12:13

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Ich schlage vor, das Du das so machst wie es unter DOS mal notwendig war,
Code:
Zu löschendes Verzeichnis suchen
:1
bis in das unterste Verzeichnis durchhangeln
:2
alle Inhalte löschen
:
wenn startverzeichnis=aktuelles verzeichnis goto :ende
eine Ebene zurück
wenn Verzeichnisse enthalten sind goto :1
wenn nicht goto :2
:ende
verzeichnis löschen
Gruß
K-H

t0mmy 16. Mär 2012 12:55

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Okay das zum löschen eines Verzeichnisses hab ich bereits hier in der community gefunden.. ich hab mir so überlegt, ich würde gern die pfade wo sich der Ordner oder wenn mehr in dem Stammverzeichnis vorkommen gerne an eine Stringlist übergeben.. aber wie suche ich nach einem Ordnernamen?

DeddyH 16. Mär 2012 13:07

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Delphi-Quellcode:
FindFirst(Pfad + 'Test*', faDirectory, SearchRec)
Sollte Verzeichnisse finden, deren Name mit Test beginnt.

t0mmy 16. Mär 2012 13:29

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Ja das FindFirst geht aber er durchsucht mir nicht die unterverzeichnisse :(

DeddyH 16. Mär 2012 13:37

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Dann musst Du rekursiv suchen. Du hast doch meinen Quelltext, und in der Code-Library gibt es auch genügend Beispiele.

Bummi 16. Mär 2012 14:23

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
http://ww.delphifaq.com/faq/f98.shtml

Popov 16. Mär 2012 14:25

AW: Bestimmte Dateien und Verzeichnise in einem Stammverzeichnis löschen
 
Zitat:

Zitat von t0mmy (Beitrag 1156902)
Okay das zum löschen eines Verzeichnisses hab ich bereits hier in der community gefunden.. ich hab mir so überlegt, ich würde gern die pfade wo sich der Ordner oder wenn mehr in dem Stammverzeichnis vorkommen gerne an eine Stringlist übergeben.. aber wie suche ich nach einem Ordnernamen?

Hier eine komplexere Funktion, die auch Ordner rekursiv durchsucht. Auch die Funktion habe ich für dich etwas gekürzt. Sollte es irgendwo einen Fehler geben, dann liegt es an der Kürzung.

Solltest du nur Ordner suchen, dann guck in der zweiten Hälfte wie nach Ordnern gesucht wird.

Delphi-Quellcode:
//Liefert Datei-Liste laut Maske
procedure GetFiles(Path, ExtMask: String; List: TStrings; SubFolder: Boolean);
var
  Attrib: Integer;
  Search: TSearchRec;
begin
  if Length(Path) > 0 then
    if Path[Length(Path)] <> '\' then Path := Path + '\';

  Attrib := faArchive or faReadOnly or faHidden;// damit es keinen Krach gibt

  if FindFirst(Path + '*.' + ExtMask, Attrib, Search) = 0 then
  repeat
    List.Add(Path + Search.Name);
  until FindNext(Search) <> 0;

  FindClose(Search);

  if SubFolder then
  begin
    if FindFirst(Path + '*.*', faDirectory, Search) = 0 then
    repeat
      if ((Search.Attr and faDirectory) = faDirectory) and
        (Search.Name[1] <> '.') then
        GetFiles(Path + Search.Name, ExtMask, List, SubFolder);
    until FindNext(Search) <> 0;

    FindClose(Search);
  end;
end;
Bedenke bitte, dass du jetzt rekursiv arbeitest. Solltest du auf die Idee kommen List mit einem try except Block zu schützen, fliegt dir bei einer Exception die ganze Funktion um die Ohren, da wegen rekursiv dann immer wieder auf eine freigegebene TStrings-Liste zugegriffen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.
Seite 3 von 3     123   

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