AGB  ·  Datenschutz  ·  Impressum  







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

Verzeichnissliste in Listbox

Offene Frage von "Koller"
Ein Thema von Koller · begonnen am 6. Okt 2005 · letzter Beitrag vom 24. Nov 2005
Antwort Antwort
Koller

Registriert seit: 22. Mär 2005
59 Beiträge
 
#1

Verzeichnissliste in Listbox

  Alt 6. Okt 2005, 17:24
Gibt es eine Funktion der man ein Verzeichnis übergibt und wo dann alle Unterverzeichnisse in einer Listbox angezeigt werden können? Halt sowas wie ne Shelltreeview, nur weiß ich nich wie ich das übers netzwerk übertragen soll weil man ja mit listbox1.commtatext einen String bauen kann. Es soll ein Program zum DAteien hin und her kopieren werden.

Koller
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Verzeichnissliste in Listbox

  Alt 6. Okt 2005, 17:45
Eine fertige Funktion gibt es AFAIK nicht, aber die kannst du dir mit Delphi-Referenz durchsuchenFindFirst, Delphi-Referenz durchsuchenFindNext und Delphi-Referenz durchsuchenFindClose selbst zusammenbasteln.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Verzeichnissliste in Listbox

  Alt 6. Okt 2005, 18:11
In der DP gibt alles

Man schaue in die Code-Library: http://www.delphipraxis.net/internal...?p=18063#18063
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Verzeichnissliste in Listbox

  Alt 6. Okt 2005, 18:16
Er braucht aber nur die Verzeichnisse . Aber man kann die Funktion ja als Vorlage benutzen, dann hat man sich schon viel Arbeit gespart.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Verzeichnissliste in Listbox

  Alt 23. Nov 2005, 13:21
Also ich stehe nun vor dem gleichen Problem, dass ich ein Verzeichnis habe, in dem sich diverse Ordner befinden, die ich einlesen und auflisten muss. Wie kann ich also die von Euch angepriesene Routine umschreiben? (http://www.delphipraxis.net/internal...?p=18063#18063)

Dort gehts doch immer um Dateien a´la *.*
Ich suche aber Ordner. Ich weiss, das sind auch nur Dateien im weitesten Sinn, aber wie gehts denn nun?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Verzeichnissliste in Listbox

  Alt 23. Nov 2005, 13:27
Die Lösung steht doch schon im Code:
Delphi-Quellcode:
if Recurse then
  if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
    try
      repeat
        if SR.Attr and faDirectory = faDirectory then
          // --> ein Verzeichnis wurde gefunden
          // der Verzeichnisname steht in SR.Name
          // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
          // RootFolder + SR.Name
Hier kannst du dann die Ordner in die StringList werfen. Die rekursive Suche kannst du ja entfernen, wenn du keine Unterordner brauchst.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Verzeichnissliste in Listbox

  Alt 24. Nov 2005, 11:41
Mein Problem ist, dass ich nicht wirklich rekursiv suchen will sondern nur alle direkten Unterordner eines Verzeichnisses finden will.

Ich habe es jetzt mal so probiert, aber es will mir einfach nicht gelingen...

Delphi-Quellcode:
procedure GetDirectoriesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean);
var
  SR: TSearchRec;
begin
  if ARekursiv then
    if (FindFirst(ADirectory+'*.*',faDirectory,SR)=0) then
    begin
      repeat
        if SR.Attr and faDirectory = faDirectory then
          AList.Add(sr.Name);
      until FindNext(SR)<>0;
      FindClose(SR);
    end;
end;
Ich erhalte alle Unterordner aber auch 2 Einträge mit . und ..
Danke
Tom
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Verzeichnissliste in Listbox

  Alt 24. Nov 2005, 12:16
Zitat von torud:
Ich erhalte alle Unterordner aber auch 2 Einträge mit . und ..
Das sind virtuelle Verzeichnisse, die ausgefiltert werden müssen:
Delphi-Quellcode:
if (SR.Attr and faDirectory = faDirectory) and (sr.Name<>'.') and (sr.Name<>'..') then
   AList.Add(sr.Name);
Andreas
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Verzeichnissliste in Listbox

  Alt 24. Nov 2005, 12:27
Da lag ich ja gar nicht so falsch mit meiner Herangehensweise

Delphi-Quellcode:
      repeat
        if SR.Attr and faDirectory = faDirectory then
          if not(sr.name='.') and not(sr.name='..')then AList.Add(sr.Name);
      until FindNext(SR)<>0;
Danke
Tom
  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 21:34 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