![]() |
Unterverzeichnisse ermitteln
HI @ all
ich habe folgendes problem: ich möchte die unterverzeichnisse eines verzeichnisses ermitteln und am besten in einer txt datei speichern. zum beispiel: Das ist mein Hauptverzeichnis C:\Programme\Messenger Unterverzeichnisse: C:\Programme\Messenger\Hello C:\Programme\Messenger\Hi C:\Programme\Messenger\Ciao in diesem Messenger Verzeichnis befinden sich weitere verzeichnisse und diese will ich ermitteln und in einer txt datei festhalten. Die text datei soll dann folgendermasen aussehen: Hallo, Hi, Ciao ich hoffe ihr wisst was ich meine, bin noch voll der anfänger..... thx |
Re: Unterverzeichnisse ermitteln
Erster Schritt sollte definitiv mal die hübsche Suchfunktion hier im Forum sein. Das Thema hatten wir tonnenweise... Stichwort: FindFirst, FindNext, TSearchRec
|
Re: Unterverzeichnisse ermitteln
ich habe die suche schon durchforstet aber verstehe die ergebnisse noch nicht ganz deswegen dachte ich mir ob jemand mir das nicht doch vieleicht noch besser erklären könnte
|
Re: Unterverzeichnisse ermitteln
Wenn ich nach findfirst unterverzeichnisse suche, kriege ich eine ganze Reihe an sinnvoller Threads. Was genau verstehst Du denn nicht?
EDIT: z.B. ![]() |
Re: Unterverzeichnisse ermitteln
wie genau benutze ich diese procedure?
Delphi-Quellcode:
also wie rufe ich sie auf?
procedure GetSubDirs(const sRootDir: string; slDirectories: TStrings);
var srSearch: TSearchRec; sSearchPath: string; slSub: TStrings; begin Screen.Cursor := crHourGlass; slSub := TStringList.Create; slDirectories.BeginUpdate; try sSearchPath := sRootDir; if FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0 then repeat if ((srSearch.Attr and faDirectory) = faDirectory) and (srSearch.Name <> '.') and (srSearch.Name <> '..') then begin slDirectories.Add(sSearchPath + srSearch.Name); slSub.Add(sSearchPath + srSearch.Name); end; until (FindNext(srSearch) <> 0); FindClose(srSearch); finally slDirectories.EndUpdate; FreeAndNil(slSub); Screen.Cursor := crDefault; end; end; wenn ich jetzt das ergebnis in ein memo reinschreiben lassen will. |
Re: Unterverzeichnisse ermitteln
Hallo,
ich habe die Prozedur ein wenig abgeändert:
Delphi-Quellcode:
Aufrufen kannst Du sie z.B. so:
procedure GetSubDirs(const sRootDir: string; slDirectories: TStrings);
var srSearch: TSearchRec; sSearchPath: string; // slSub: TStrings; begin Screen.Cursor := crHourGlass; // slSub := TStringList.Create; slDirectories.BeginUpdate; slDirectories.Clear; try sSearchPath := IncludeTrailingBackslash(sRootDir); if FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0 then begin repeat if ((srSearch.Attr and faDirectory) = faDirectory) and (srSearch.Name <> '.') and (srSearch.Name <> '..') then begin slDirectories.Add(sSearchPath + srSearch.Name); // slSub.Add(sSearchPath + srSearch.Name); end; until (FindNext(srSearch) <> 0); FindClose(srSearch); end; finally slDirectories.EndUpdate; // FreeAndNil(slSub); Screen.Cursor := crDefault; end; end;
Delphi-Quellcode:
//Edit: IncludeTrailingBackslash an die richtige Stelle gesetzt
GetSubDirs('C:\Programme',Memo1.Lines);
|
Re: Unterverzeichnisse ermitteln
das ist echt voll nett von dir danke......
jetzt hätte ich nur noch eine kleine frage: ich will nur den ordnernamen haben und nicht den ganzen pfad wie kann ich den pfad noch aus dem memo löschen? |
Re: Unterverzeichnisse ermitteln
Delphi-Quellcode:
in
slDirectories.Add(sSearchPath + srSearch.Name);
Delphi-Quellcode:
ändern
slDirectories.Add(srSearch.Name);
|
Re: Unterverzeichnisse ermitteln
@DeddyH: Afaik sollte man anstelle von
![]() ![]() @Jackthecoder: Dir fehlen einige Delphi-Grundlagen, glaube ich. Arbeite mal ![]() |
Re: Unterverzeichnisse ermitteln
@Matze
jo ich setz mich da gleich ma ran @ all danke für eure hilfe ich hab alles so hinbekommen wie ich wollte......big thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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