Storing directory names in a table

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
 
A

Albert D. Kallal

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
 
D

Douglas J. Steele

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top