我需要使用Excel 2010中的VBA从远程服务器上的文件夹中获取文件名集合。我有一个可行的函数,大多数情况下它可以胜任,但是远程服务器经常出现网络性能问题,非常糟糕。这意味着循环遍历300个文件将它们的名称放入集合中可能需要10分钟,文件夹中的文件数量可能会增长到数千个,因此这是不可行的。我需要一种方法来通过单个网络请求获取所有文件名,而不是循环遍历。我认为连接到远程服务器需要时间,因此一个单独的请求应该能够在一个比较快的过程中获取所有文件。
这是我当前使用的函数:
这是我当前使用的函数:
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