Say you have C:\folders, inside that dir are folders called "Blah1", "Blah2" etc...
How could you load each folder name (x amount of folders) into a listbox?
Printable View
Say you have C:\folders, inside that dir are folders called "Blah1", "Blah2" etc...
How could you load each folder name (x amount of folders) into a listbox?
'using fso
Code:Option Explicit
Sub ShowFolderList(folderspec)
Dim fs As Object
Dim f, f1, s, sf
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set sf = f.SubFolders
For Each f1 In sf
s = f1.Name
List1.AddItem s
s = s & vbCrLf
Next
End Sub
Private Sub command1_Click()
Call ShowFolderList("C:\")
End Sub
Dir Function:
[Edited by gwdash on 09-17-2000 at 06:20 PM]Code:
Dim myst
Dim MyName As String
Dim MyPath As String
' Display the names in C:\ that represent directories.
MyPath = "c:\windows\" ' Set the path.
MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry.
Do While MyName <> "" ' Start the loop.
' Ignore the current directory and the encompassing directory.
If MyName <> "." And MyName <> ".." Then
' Use bitwise comparison to make sure MyName is a directory.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
List1.AddItem MyName ' Display entry only if it
End If ' it represents a directory.
End If
MyName = Dir ' Get next entry.
Loop
Try this:
Code:Sub DirMap(ByVal Path As String, List As ListBox)
On Error Resume Next
Dim i, j, x As Integer 'All used as counters
Dim Fname(), CurrentFolder, Temp As String
Temp = Path
If Dir(Temp, vbDirectory) = "" Then Exit Sub 'if there arent any sub directories the exit
CurrentFolder = Dir(Temp, vbDirectory)
'First get number of folders (Stored in
' i)
Do While CurrentFolder <> ""
If GetAttr(Temp & CurrentFolder) = vbDirectory Then
If CurrentFolder <> "." And CurrentFolder <> ".." Then
i = i + 1
End If
End If
CurrentFolder = Dir
Loop
ReDim Fname(i) 'Redim the array With number of folders
'now store the folder names
CurrentFolder = Dir(Temp, vbDirectory)
Do While CurrentFolder <> ""
If GetAttr(Temp & CurrentFolder) = vbDirectory Then
If CurrentFolder <> "." And CurrentFolder <> ".." Then
j = j + 1
Fname(j) = CurrentFolder
List.AddItem Temp & Fname(j)
End If
End If
CurrentFolder = Dir
Loop
' For each folder check to see there are
' sub folders
For x = 1 To i
Call DirMap(Temp & Fname(x) & "\", List)
Next
End Sub
Usage:
Private Sub Command1_Click()
Call DirMap("C:\Windows\", List1)
'Must have "\" at the end of the path
End Sub
there is also another example, if you search for Start Menu, posted by Zaei, you will find it.