I've written a little ditty to traverse folders and report back folder sizes, if anyone's interested?

VB Code:
  1. Private Sub cmdGo_Click()
  2. Dim varCurrentFolder    As Variant
  3. Dim sFolderName         As String
  4. Dim sFoldersInRoot()    As String
  5. Dim iStep               As Integer
  6. ReDim sFoldersInRoot(1)
  7.  
  8. sFolderName = Me.txtFolder.Text
  9. Me.txtFolders.Text = ""
  10.  
  11. 'Count all filesizes
  12. On Error GoTo NextFile
  13. varCurrentFolder = Dir(sFolderName, vbDirectory)  ' Retrieve the first entry.
  14. Do
  15.     If GetAttr(sFolderName & varCurrentFolder) = vbDirectory Then
  16.         If varCurrentFolder <> "" And varCurrentFolder <> ".." And varCurrentFolder <> "." Then
  17.             sFoldersInRoot(UBound(sFoldersInRoot)) = varCurrentFolder
  18.             ReDim Preserve sFoldersInRoot(UBound(sFoldersInRoot) + 1)
  19.         End If
  20.     End If
  21. NextFile:
  22.     varCurrentFolder = Dir
  23. Loop Until varCurrentFolder = ""
  24.  
  25. On Error GoTo Error
  26.  
  27. ReDim Preserve sFoldersInRoot(UBound(sFoldersInRoot) - 1)
  28. For iStep = 1 To UBound(sFoldersInRoot)
  29.     'Me.lstFolders.AddItem (sFoldersInRoot(iStep) & vbTab & Traverse(sFolderName & sFoldersInRoot(iStep) & "\"))
  30.     Me.txtFolders.Text = Me.txtFolders.Text & sFoldersInRoot(iStep) & vbTab
  31.     Me.txtFolders.Text = Me.txtFolders.Text & Traverse(sFolderName & sFoldersInRoot(iStep) & "\")
  32.     Me.txtFolders.Text = Me.txtFolders.Text & Chr$(13) & Chr$(10)
  33. Next iStep
  34.  
  35. Error:
  36.  
  37. End Sub
  38.  
  39. Dim lngFileSize  As Long
  40.  
  41. Function Traverse(ByVal sFolderName) As Long
  42. lngFileSize = 0
  43. Call DisplayFolder2(sFolderName)
  44. Traverse = lngFileSize
  45. Screen.MousePointer = vbDefault
  46. End Function
  47.  
  48. Sub DisplayFolder2(ByVal sFolderName As String)
  49. Dim varCurrentFolder    As Variant
  50. Dim iStep               As Long
  51. Dim sFolders()          As String
  52. ReDim sFolders(1)
  53. varCurrentFolder = Dir(sFolderName, vbDirectory) ' Retrieve the first entry.
  54. Screen.MousePointer = vbHourglass
  55. Do
  56.     If varCurrentFolder <> "" Then
  57.         'If it's a directory then
  58.         If GetAttr(sFolderName & varCurrentFolder) = vbDirectory Then
  59.             If varCurrentFolder <> "." And varCurrentFolder <> ".." And varCurrentFolder <> "" Then
  60.                 sFolders(UBound(sFolders)) = varCurrentFolder
  61.                 ReDim Preserve sFolders(UBound(sFolders) + 1)
  62.             End If
  63.         Else
  64.             'if it's a file then add the size to the list
  65.             If varCurrentFolder <> "." And varCurrentFolder <> ".." And varCurrentFolder <> "" Then
  66.                 lngFileSize = lngFileSize + FileLen(sFolderName & "\" & varCurrentFolder)
  67.             End If
  68.         End If
  69.         varCurrentFolder = Dir
  70.     End If
  71. DoEvents
  72. Loop Until varCurrentFolder = ""
  73.  
  74. ReDim Preserve sFolders(UBound(sFolders) - 1)
  75.  
  76. For iStep = 1 To UBound(sFolders)
  77.     Call DisplayFolder2(sFolderName & sFolders(iStep) & "\")
  78. Next iStep
  79.  
  80. End Sub