is ganz simpel!
Verzeichnisse durchsuchen bzw auflisten kann man am einfachsten mit der funktion "Dir()"
Wenn nur ein Verzeichniss auflisten willst, kannste das wie folgt machen:
Code:
Dim A() as string
Dim C as long
Dim T as string
Dim P as string
P = "C:\"
do while t = ""
t = dir(p)
if t <> ".." and t <> "." then
c = c + 1
redim preserve a(c) as string
a(c) = t
endif
loop
jetz haste in C die anzahl der gefundenen Datein und verzeichnisse stehen!
Zweites beispiel zeit an, wie man auch Unterverzeichnisse mit einbeziehen kann!
Im endeffekt nichts anderes
Code:
Dim A() as string
Dim C as long
Dim T as string
Dim P as string
Dim V() as string
Dim VC as long
Dim X as long
x = 0
vc = 1
redim v(vc) as string
v(vc) = "C:\" 'Startverzeichniss
do
x = x + 1
p = v(x)
do while t = ""
t = dir(p)
if t <> ".." and t <> "." then
if getattr(p & t) = vbdirectory then
vc = vc + 1
redim preserve v(vc) as string
v(vc) = p & t
endif
c = c + 1
redim preserve a(c) as string
a(c) = t
endif
loop
if x = vc then
exit do
endif
loop
im Grunde wird hier nichts anderes gemacht, als mit "getattr" herauszufinden, ob sich bei dem gefundenen eintrag um ein verzeichniss handelt oder nicht! Wenn es ein verzeichniss ist, nehmen wir es in die Liste mit auf, und durchsuchen es beim nächsten schleifendurchlauf auch!
Hoffe, habe das jetzt nicht ganz zu kompliziert gemacht!
Dies gilt jetz für beide beispiele!
Die "DIR()" function kann man auch mit "*.*" operatoren verbinden! z.B. wenn man in einem verzeichniss nur nach TXT datein sucht! Dann gibt man einfach an: "Dir("C:\" & *.txt")" ... jetz gibt er ausschlieslich TXT datein aus!
Man kann auch ausschlieslich Verzeichnisse auflisten lassen! z.B. Dir("C:\", vbdirectory)
Es gibt da n haufen funktionen bzw. Enums die man hier einsetzen kann! ... bekommst ne liste wenn den befehl schreibt! oder drück einfach man "F1" ... in der MSDN findest auch n haufen beispiel!
===WICHTIG===
Versteckte datein werden hier nicht aufgelistet!
Dazu muss man das "vbHidden" hinzufügen musste einfach mal ausprobieren!
Viel erfolg!
Greez
Martin