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.