Тема: WSH:Рекурсивный вывод файлов в папке.
Есть папка в которую поступают файлики в разные директории на диске "D:\". (В момент поступления создается своя определенная по названию директория).
Конечная задача:
Нужно рекурсивно пройтись по всем папкам директории "D:\" и считать все имена файлов.
После чего все найденное поместить в трехмерный массив i, j, k, или может использовать Dictionary где
i - это полный путь папки.
j - имя файлов.
k - дата создания папки в которой находится файл.
Так же необходимо потом будет все данные массива сортировать по дате поступления (создания папки).
Теперь в чем у меня трудность:
1) Накидал пару строк где я перебираю содержимое директории "D:\", но не могу понять как сделать так что б начать рекурсивно перебирать все папки в данной директории?
Думал использовать if, но уровень сложений тогда придется статически описывать, что не есть правильно.
2) Занесение данных в трехмерный массив не составит труда.
3) А вот как отсортировать массив по дате создания папки тоже пока вопрос.
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
startFolder = "D:\"
If fso.FolderExists (startFolder) Then Start startFolder
Function Start(folderName)
Dim folder, file, fileCollection, folderCollection, subFolder
Set folder = fso.GetFolder(folderName)
Set folderCollection = folder.SubFolders
For Each subFolder In folderCollection
MsgBox subFolder.Path
Next
Set fileCollection = folder.Files
For Each file In fileCollection
MsgBox file.Path
Next
End Functionрекурсию по папкам кажется можно реализовать вот так:
AllDir = "D:\1"
OutStr = AllDir + vbCrLf
OutStr = OutStr + AllFolders(AllDir)
MsgBox OutStr
Function AllFolders(WDir)
' MsgBox WDir
Rezult = ""
Set F = CreateObject("Scripting.FileSystemObject").GetFolder(WDir)
Set SubF = F.SubFolders
For Each Folder In SubF
Rezult = Rezult + WDir + "\" + Folder.Name + vbCrLf
Rezult = Rezult + AllFolders(WDir + "\" + Folder.Name)
Next
AllFolders = Rezult
End Function
