전체 드라이브 검색에 꽤 많은 시간이 소요됩니다. getFileList를 만들어 배열의 파일 경로를 반환하는 모든 폴더와 하위 폴더를 반복적으로 검색합니다. 올바른 디렉토리를 찾으면 함수를 종료시켜 프로세스 속도를 높일 수 있습니다.
나는 SaveSetting을 사용하여 레지스트리의 경로를 저장하고 나중에 GetAllSettings
HowTo_GetFileList 매크로를 사용하여 가져 오는 중 오류 좋습니다 파일 경로의 배열을 필터링 할 수있는 방법을 보여줍니다.
Sub HowTo_GetFileList()
Const MATCHVALUE As String = "Demo"
Dim f, FileList, FilteredList
FileList = getFileList("C:\Users\Owner\Downloads")
FilteredList = Filter(FileList, MATCHVALUE)
For Each f In FilteredList
'Do Something
Next
End Sub
Function getFileList(localRoot As String, Optional fld, Optional ftpArray)
Dim fso, f, baseFolder, subFolder, ftpFile, i
Set fso = CreateObject("Scripting.Filesystemobject")
If IsMissing(fld) Then
Set baseFolder = fso.GetFolder(localRoot)
Else
Set baseFolder = fld
End If
For Each f In baseFolder.Files
If IsMissing(ftpArray) Then
ReDim ftpArray(0)
Else
i = UBound(ftpArray) + 1
ReDim Preserve ftpArray(i)
End If
ftpArray(i) = f.Path
Next
For Each subFolder In baseFolder.SubFolders
getFileList localRoot, subFolder, ftpArray
Next
getFileList = ftpArray
End Function
가장 효율적인 옵션은 공유 폴더의 목록을 반환하는 LDAP 쿼리를 확인하는 것입니다. VBSEditor.com의
Sample Script이 바로 그 작업을 수행합니다. 이를 위해서는 상당한 양의 Active Directory 지식이 필요합니다.
"설치"라고 말하면 다른 소프트웨어 패키지의 일부로 사용 하시겠습니까? 그렇다면 레지스트리 항목이 필요합니다. – Comintern