Verzeichnisse durchsuchen

bastiglasl

Erfahrenes Mitglied
mahlzeit!

Ich würd gern mit VB Verzeichnisse durchsuchen und Dateien auslesen. Das Auslesen is okay, aber wie lauf ich die Dateien und Unterverzeichnisse durch
 
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! :p

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
 
Zuletzt bearbeitet:
Ich empfehle "FindFirstFile" und "FindNextFile" aus der API.

Speichert die Dateien in einer Structur, die man dann locker aus der Hüfte weiter bearbeiten kann.
 
Zurück