В настоящее время я работаю над скриптом, который будет проходить через заданную папку и искать все файлы с определенным расширением. Затем он распечатает имя и суммирует размер файла. Я считаю, что большинство проблем сортировано, поэтому этот вопрос не о том, как это сделать.VBS: FileSystemObject use in Recursion
Вместо этого, я хочу знать, какая была бы лучшая практика для использования потоков FileSystemObject в рекурсивной функции. Должен ли я использовать один поток для всех вызовов (глобальных или переданных), или я должен создавать новый поток для каждого рекурсивного шага?
Для дополнительного удовольствия я планирую иметь доступ к нескольким компьютерам и по пути UNC. И да, я ожидаю, что есть лучший способ сделать это, но я относительно новичок в VBS.
Текущий код:
'Recursive Function handles search of files in folder and subfolders.
Function UNCSearchFolder(strUNCRootPath, strUNCNextFolder)
Dim objFSOUNCSearchFolder, objFSOUNCSearchFolder2, colFolderList, objFolder, strCurrentFolder, strSubFolder
'Get list of Subfolders in folder: <Rootpath>\<Nextfolder>
strCurrentFolder = strUNCRootPath & "\" & strUNCNextFolder & "\"
Set objFSOUNCSearchFolder = CreateObject("Scripting.FileSystemObject")
Set objFSOUNCSearchFolder2 = objFSOUNCSearchFolder.GetFolder(strCurrentFolder)
Set colFolderList = objFSOUNCSearchFolder2.SubFolders
'Subfolder dive
For Each objFolder in colFolderList
strSubFolder = objFolder.name
'REMOVE THIS ECHO LATER
wscript.echo strSubFolder
UNCSearchFolder(strCurrentFolder, strSubFolder)
Next
'Search for files here
'GC on File Streams
Set objFSOUNCSearchFolder2 = Nothing
Set objFSOUNCSearchFolder = Nothing
End Function
Таким образом, следует один FileStream используется для всех доступов или должен каждый шаг использовать один отдельно? Это спорный вопрос? Будет ли это причиной множественных подключений к каждой системе или если оно будет использовать только один? В принципе, я хочу, чтобы скрипт работал без нарушения работы пользователей или вызывал странные ответы (т. Е. Заканчивал активные подключения). Сценарий будет использоваться только пару раз для аудита, который мы делаем, но в конечном итоге может быть переназначен для будущих аудитов.
Дайте мне знать, что вы думаете. Спасибо за любую помощь,
Я уверен, что большинство кодировщиков не учитывают оптимизацию вызовов FSO в рекурсии, поэтому вы получили мой ответ на этот вопрос. –