Ordner auslesen mit Dir()

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Ordner auslesen mit Dir()
von: Dirk
Geschrieben am: 28.10.2003 12:53:47

Hallo zusammen,

ich versuche, aus einem Ordner (C:\Eigene Dateien) die Unterverzeichnisse auszulesen. Die Dateien aus einem Ordner (C:\Eigene Dateien) kann ich prima mit a = Dir(“C:\Eigene Dateien\” & „*.*“) auslesen. Aber wie kriege ich das mit Unterverzeichnissen hin? Mein jämmerlicher Versuch bisher:
a = Dir(“C:\Eigene Dateien\”, vbDirectory)
Aber so wird alles ausgelesen (obwohl ich extra „vbDirectory“ gesagt habe :(().

Diese Gelegenheit will ich auch noch nutzen um zu fragen, was in diesem Zusammenhang „.“ und „..“ (jeweils als Ergebnis von Dir()) heißt. Daraus werde ich auch nicht schlau.

Ich bin sehr dankbar für eine Antwort.
Dirk

Bild


Betrifft: AW: Ordner auslesen mit Dir()
von: Nayus
Geschrieben am: 28.10.2003 13:06:40

Hallo,
mit DIR geht das nicht.

'Lösungsansatz (Angepasste Kopie aus der Online-Hilfe):


Sub ShowFolderList()
    Dim fs, f, f1, fc, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder("c:\temp\")
    Set fc = f.SubFolders
    For Each f1 In fc
        s = s & f1.Name
        s = s & vbCrLf
    Next
    MsgBox s
End Sub



Viel Erfolg,
Nayus


Bild


Betrifft: AW: Ordner auslesen mit Dir() - noch offen -
von: Guido Palacios
Geschrieben am: 28.10.2003 13:47:43

Hi,

wenn Dir mit dem Attributsparameter 16 verwendet wird liefert es unter anderem auch die Verzeichnisnamen "." und ".."! Dies Verzeichnisnamen sind für die interne Verwaltung der Verzeichnisstruktur von Bedeutung.

Wie ich diese verwende bzw. berücksichtige ist mir selber auch noch unklar!

Grüße
Guido P.


Bild


Betrifft: AW: Ordner auslesen mit Dir()
von: Reinhard
Geschrieben am: 28.10.2003 14:29:43

Hi Dirk,
als Bill Gates damals einem armen Studenten ein Programm für 1500$ abkaufte, damit zu IBM ging und die Mutter aller Verträge abschloss, gabs (glaub) schon bei Verzeichnissen diese "." und "..".
Mit "." ist das Verzeichnis wo man sich gerade befindet und mit ".." das übergeordnete Verzeichnis gemeint. Siehe dazu das nachfolgende Makro.
In Dos kann/konnte man also mit CD.. ein Verzeichnis höhergehen.
Für was man "." benutzen kann ist mir unklar. Ich glaub es gab mal die Möglichkeit in Dos -Batches zu prüfen mittels "if exists", was normal nur für dateien gilt, in dem man mit "If exists==VerzName\." das Vorhandensein von "." abprüfte, zu prüfen ob das Verzeichnis VerzName existiert.

Jedenfalls ist es egal was man nimmt, ob:
a = Dir("C:\Eigene Dateien\" & "*.*")
a = Dir("C:\Eigene Dateien\.")
a = Dir("C:\Eigene Dateien\")

(Ps:was hast du denn für Gänsefüßchen? Word?)

Man kann mit Dir schon nur Verzeichnisse auflisten lasse, sofern sie keinen Dateiendung haben, also das Verzeichnis "Alle Bilder" findet man, das Verzeichnis "Alle Bilder.001"
nicht, siehe letzte While-Schleife.
Gruß
Reinhard


Sub z()
a = Dir("D:\Eigene Dateien\.", vbDirectory)
n = 1
While a <> ""
Cells(n, 1) = a
n = n + 1
a = Dir()
Wend
a = Dir("D:\Eigene Dateien\", vbDirectory)
n = 1
While a <> ""
Cells(n, 3) = a
n = n + 1
a = Dir()
Wend
a = Dir("D:\Eigene Dateien\..", vbDirectory)
n = 1
While a <> ""
Cells(n, 5) = a
n = n + 1
a = Dir()
Wend
a = Dir("D:\Eigene Dateien\*.", vbDirectory)
n = 1
While a <> ""
Cells(n, 7) = a
n = n + 1
a = Dir()
Wend
End 

Sub  


Bild


Betrifft: siehe auch bei XL: ChDir ".." o.w.T.
von: Reinhard
Geschrieben am: 28.10.2003 14:32:25

Gruß
Reinhard


Bild


Betrifft: Danke an alle, ihr seid sehr hilfreich! (nT)
von: Dirk
Geschrieben am: 28.10.2003 21:11:33

a


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Ordner auslesen mit Dir()"