Я ищу способ поиска в определенной папке подпапки, содержащей определенную строку. Ниже я перечислил функцию, которую набрал на макушке головы, чтобы посмотреть, сработает ли она. Ну, это работает, но когда я говорю о поиске в 6000 папок на сетевом диске, это просто не достаточно быстро.
Я уверен, что есть лучший способ сделать это, но я не могу ничего найти в Google.
Есть ли объект, позволяющий использовать окна, встроенные в возможности поиска и индексации файловой системы?
В качестве альтернативы, есть ли у кого-то способ оптимизировать мой код? Основным узким местом является использование instr
.
Вот код:
Function findPath(strId As String) As String
checkObj
Dim strBase As String
strBase = opt.photoBasePath
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Dim baseFolder As Object
Set baseFolder = fs.getfolder(strBase)
Dim folder As Object
For Each folder In baseFolder.subfolders
If InStr(1, folder.name, strId) > 0 Then
findPath = strBase & "\" & folder.name
Exit Function
End If
Next folder
End Function
P.S. Я уверен, что кто-то предложит изменить структуру моей папки, чтобы я мог программно предсказать путь, но по разным причинам это невозможно в моем случае.