Storing directory names in a table

  • Thread starter Thread starter Sheila
  • Start date Start date
S

Sheila

I am hoping someone here has experience with this. I am using Access
97, but if someone has done this in another version I'd appreciate
input as well

I need to populate a table with subdirectory names.

Example:
c:\Tests has the subdirectories test1, test2 and test3. Each directory
has a file called test1.txt, test2.txt, test3.txt. I would like to
populate a table with just the subdirectory names.

I hope this was clear enough, and I realy hope someone has come across
this before.

Thanks in advance,
Sheila
 
Do you want JUST the directory names, or how about something that results
all file names in he dir, and (also, all those below?).

Would that help?

Here is some test code that takes a given directory, and retunes ALL files
(and includes all files in the sub-dirs also).


Sub dirTest()

Dim dlist As New Collection
Dim startDir As String
Dim i As Integer

startDir = "C:\access\"
Call FillDir(startDir, dlist)

MsgBox "there are " & dlist.Count & " in the dir"

' lets printout the stuff into debug window for a test

For i = 1 To dlist.Count
Debug.Print dlist(i)
Next i

End Sub


Sub FillDir(startDir As String, dlist As Collection)

' build up a list of files, and then
' add add to this list, any additinal
' folders

Dim strTemp As String
Dim colFolders As New Collection
Dim vFolderName As Variant

strTemp = Dir(startDir)

Do While strTemp <> ""
dlist.Add startDir & strTemp
strTemp = Dir
Loop

' now build a list of additional folders
strTemp = Dir(startDir & "*.", vbDirectory)

Do While strTemp <> ""
If (strTemp <> ".") And (strTemp <> "..") Then
colFolders.Add strTemp
End If
strTemp = Dir
Loop

' now process each folder (recursion)
For Each vFolderName In colFolders
Call FillDir(startDir & vFolderName & "\", dlist)
Next vFolderName

End Sub
 
The following will give you all of the subdirectories:

Sub ListSubdirectories()
Dim strFolder As String

strFolder = Dir$("C:\Tests\", vbDirectory)
Do While Len(strFolder) > 0
If strFolder <> "." And strFolder <> ".." Then
If (GetAttr("C:\Tests\" & strFolder) And vbDirectory) =
vbDirectory Then
Debug.Print strFolder
End If
End If
strFolder = Dir$()
Loop

End Sub

Hopefully that's enough to get you going.
 
Back
Top