AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Ordner auflisten

Ein Thema von SyntaxXx · begonnen am 7. Apr 2012 · letzter Beitrag vom 7. Apr 2012
Antwort Antwort
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Alle Ordner auflisten

  Alt 7. Apr 2012, 15:19
Hallo zusammen,
ich habe ein kleines Problem.
Und zwar möchte ich mir in meinem Programm alle Ordner + Unterordner anzeigen lassen.
Doch leider komme ich jetzt nicht weiter.

Ich habe das hier schon gefunden, doch das will nicht so wirklich. http://www.delphipraxis.net/2235-ver...rchsuchen.html

Daher habe ich mich ran gesetzt und das ganze Schritt für Schritt gemacht und bin im Endeffeckt Quasi bei der Lösung, wie sie auch oben steht xD.
Naja jetzt ahbe ich die Procedur zumindest verstanden xD.

Nur eine Sache verstehe ich nicht.
Woher weiß oben die Procedur, wann es keine Unterodner mehr gibt.
Denn genau das ist das Problem was ich habe.

Klar, ich könnte eine Schleife einbauen, die das Ganze so oft wiederholt, wie ich möchte.
Nur das Problem ist, dass ich ja nicht weiß, wie viele Unterordner es gibt.

Ich hatte schon den Ansatz:
var SR : TSearchRec;
Delphi-Quellcode:
repeat
//Hier kommt das ganze Ordnerauslesen
until SR.Name = '';
Nur leider funktioniert das nicht, da SR.Name leider kein '' zurück gibt xD

Nun also meine Frage, wie kann ich es schaffen, dass die Schleife stoppt, wenn es keinen Unterordner mehr gibt?

Danke schonmal.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: Alle Ordner auflisten

  Alt 7. Apr 2012, 15:28
FindFirst und FindNext hast du aber auch mit eingebaut?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 7. Apr 2012 um 17:04 Uhr)
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#3

AW: Alle Ordner auflisten

  Alt 7. Apr 2012, 15:32
Ja habe ich.
Ich habe mir unter eben angegebenem Link das Beispiel nochmal angeschaut und denke ich habe das Problem gefunden.
Ich werde das jetzt ausprobieren und euch dann bessheid geben.

Dennoch vielen Dank schonmal
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: Alle Ordner auflisten

  Alt 7. Apr 2012, 18:47
Da gibt's doch auch was Eingebautes:

Delphi-Quellcode:
uses
  Types, IOUtils;

var
  dirs: TStringDynArray;

begin
  dirs := TDirectory.GetDirectories('C:\', '*', soAllDirectories);
  ...
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Alle Ordner auflisten

  Alt 7. Apr 2012, 19:12
Nur eine Sache verstehe ich nicht.
Woher weiß oben die Procedur, wann es keine Unterodner mehr gibt.
Denn genau das ist das Problem was ich habe.
Bezogen auf das von dir genannte Beispiel sieht es so aus, dass die Prozedur aus zwei Suchfunktionen besteht. Die eine sucht nach Dateien und schließt Ordner aus, die andere sucht nach Ordnern und ignoriert die Dateien. Findet die zweite Suchfunktion einen Ordner, ruft sie sich selbst mit dem Ordner wieder auf. Es wird fortgesetzt und ein Stapel aufgebaut bis irgendwann kein Ordner mehr da ist, so das der Stapel wieder komplett abgebaut wird.

Das ist jetzt keine Kritik an dem Beispiel, aber es gibt Funktionen die geradliniger aufgebaut sind und deshalb leichter verständlich sind. Such dir vielleicht eine Funktion die das gleiche erledigt und einfacher zu verstehen ist.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz