PDA

View Full Version : Looping through Each Files and Folders



Rajan_Verma
04-18-2012, 12:12 AM
Hi Guys,
Many times we need to loop through folders , sub folders and files , i have created a code to get the folder structure of a given path



================================================== =====================
Public ObjFolder As Object

Public objFso As Object
Public objFldLoop As Object
Public lngCounter As Long
Public objFl As Object


'================================================= ==
'A procedure to call the Function LoopThroughEachFolder(objFolder)
'================================================= ==

Sub GetFolderStructure()
'
lngCounter = 0
Set objFso = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Set ObjFolder = objFso.GetFolder(.SelectedItems(1))
End With
Range("A1").Offset(lngCounter).Value = ObjFolder.Path
LoopThroughEachFolder ObjFolder

End Sub
'================================================= ==
'Function to Loop through each Sub Folders
'================================================= ==

Function LoopThroughEachFolder(fldFolder As Object)

For Each objFldLoop In fldFolder.subFolders
lngCounter = lngCounter + 1
Range("A1").Offset(lngCounter).Value = objFldLoop.Path
LoopThroughEachFolder objFldLoop
Next

End Function

'================================================= == =========
'In below function we have a nested loop to iterate each files also
'================================================= == =========


Function LoopThroughEachFolder1(fldFolder As Object)

For Each objFldLoop In fldFolder.subFolders
lngCounter = lngCounter + 1
Range("A1").Offset(lngCounter).Value = objFldLoop.Path
For Each objFl In objFldLoop.Files
Range("A1").Offset(lngCounter, 1).Value = objFl.Name
lngCounter = lngCounter + 1
Next
LoopThroughEachFolder1 objFldLoop
Next
End Function


Rajan.