Мне нужно получить коллекцию имен файлов из папки на удаленном сервере с использованием VBA в excel 2010. У меня есть функция, которая работает, и в большинстве случаев она будет выполнять эту работу, однако на удаленном сервере часто бывает ужасно, ужасно проблемы с производительностью сети. Это означает, что зацикливание через 300 файлов, чтобы поместить их имена в коллекцию, может занять 10 минут, количество файлов в папке, вероятно, вырастет до тысяч, поэтому это не работает, мне нужен способ получить все имена файлов в одном сетевом запросе, а не в цикле. Я считаю, что его подключение к удаленному серверу занимает время, поэтому один запрос должен иметь возможность получить все файлы за один проход достаточно быстро.Excel VBA эффективная функция имени файла
Это функция, которую я в настоящее время на месте:
Private Function GetFileNames(sPath As String) As Collection
'takes a path and returns a collection of the file names in the folder
Dim oFolder As Object
Dim oFile As Object
Dim oFSO As Object
Dim colList As New Collection
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(folderpath:=sPath)
For Each oFile In oFolder.Files
colList.Add oFile.Name
Next oFile
Set GetFileNames = colList
Set oFolder = Nothing
Set oFSO = Nothing
End Function
+ 1 Хороший вопрос :) Вы почти заставили меня думать! –