VBA List all files (fast way) in subfolders without FileSystemObject

前端 未结 1 1387
抹茶落季
抹茶落季 2020-12-11 07:21

I\'m searching for a way for fast listing all files from subfolders of folder. Approach based on FileSystemObject is too slow - it takes ~6 minutes for listing 416 filenames

相关标签:
1条回答
  • 2020-12-11 07:26

    Use CMD instead:

    Sub SO()
    
    Const parentFolder As String = "C:\Users\bloggsj\folder\" '// change as required, keep trailing slash
    
    Dim results As String
    
    results = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & parentFolder & "*.*"" /S /B /A:-D").StdOut.ReadAll
    
    Debug.Print results
    
    '// uncomment to dump results into column A of spreadsheet instead:
    '// Range("A1").Resize(UBound(Split(results, vbCrLf)), 1).Value = WorksheetFunction.Transpose(Split(results, vbCrLf))
    '//-----------------------------------------------------------------
    '// uncomment to filter certain files from results.
    '// Const filterType As String = "*.exe"
    '// Dim filterResults As String
    '// 
    '// filterResults = Join(Filter(Split(results, vbCrLf), filterType), vbCrLf)
    '//
    '// Debug.Print filterResults
    End Sub
    
    0 讨论(0)
提交回复
热议问题