Detail: Auflisten einer Ordnerstruktur mit ArrayList-Klasse

04.06.2010 - Auflisten einer Ordnerstruktur mit ArrayList-Klasse

Ziel des nachfolgenden Beispiel-Marko ist es, eine komplette Ordnerstruktur, ausgehend von einem Startordner, auflisten zu lassen. Die jeweilige Tiefe, kann dabei selbst bestimmt werden.
Wir nutzen dafür die Funktion GetSubFolderList, welche sich rekursiv aufruft.

Hinweis: Stellen Sie sicher, dass Sie Zugriff auf alle Ordner in dieser Struktur haben, da sonst das Makro fehl schlägt.

' Heiko Jendreck - personal helpdesk & webdesign
' http://www.phw-jendreck.de
' 2010.06.04 Vers 1.03

' list_folder.vbs
' ======================================================================
' Script zum Auflisten einer Ordnerstruktur mit der Option,
' die Tiefe der Struktur, selbst bestimmen zu können.

OPTION EXPLICIT

'#####################################################################
' Zunächst setzen wir die Startparameter
Dim oSubFolderList, sItem

Const sStartFolder = "D:\Test"
Const sDeep = 4 'Angabe der Tiefe, in diesem Beispiel 4 Ordner-Ebenen
'#####################################################################

' System.Collections = .NET Framework-Klassenbibliothek
' Klasse ArrayList = Implementiert die IList-Schnittstelle unter Verwendung eines Arrays,
' das nach Bedarf dynamisch vergrößert wird. (Assembly: mscorlib in mscorlib.dll)
Set oSubFolderList = CreateObject("System.Collections.ArrayList")

' Aufruf der Prozedur/Funktion
CALL GetSubFolderList(sStartFolder, sDeep)

' Schleife, welche die Ordner in der Struktur ausgibt
For Each sItem In oSubFolderList
WScript.Echo sItem
Next

' Prozedur/Funktion, um die Ordnerstruktur zu durchlaufen
Sub GetSubFolderList(ByVal sPath, ByVal iDepth)
Dim oFSO, oFolder, oSubFolder

' Wir benötigen das FileSystemObjekt, um auf die Ordnerstruktur zugreifen zu können.
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(sPath)
If iDepth > 0 Then
For Each oSubFolder In oFolder.SubFolders
oSubFolderList.Add(oSubFolder.Path)
CALL GetSubFolderList(oSubFolder, iDepth - 1)
Next
End If
End Sub

zurück

Copyright © 2003 - 2011, Heiko Jendreck, All rights reserved
http://www.phw-jendreck.de / Heiko Jendreck; Friedrichstrasse 20; 68782 Brühl