用于列出VB6中文件夹中指定类型的所有文件的任何函数

ano*_*ser 2 vb.net vb6 visual-studio-2005

我想知道下面描述的场景是否有一些内置函数:

输入是父文件夹的路径.功能必须要做的是,它应该列出该父文件夹中的所有.zip文件.父文件夹可以包含任意数量的子文件夹,同样适用于子文件夹.任何人都可以帮我解决这个问题吗?

VB版不是路障.VB6或VS2005的任何版本都可以.请帮助我.如果没有内置功能,还有其他替代方法.提前致谢.

Tom*_*lak 7

对于VB6.0,我会使用FileSystemObject一个小的递归函数.

Sub test()
  Dim fso As New Scripting.FileSystemObject
  Dim files As New Collection
  Dim file As Scripting.file

  GetFilesRecursive fso.GetFolder("C:\YourFolder"), "zip", files, fso

  For Each file In files
    Debug.Print file.Name
  Next file
End Sub

Sub GetFilesRecursive(f As Scripting.Folder, filter As String, c As Collection, fso As Scripting.FileSystemObject)
  Dim sf As Scripting.Folder
  Dim file As Scripting.file

  For Each file In f.Files
    If InStr(1, fso.GetExtensionName(file.Name), filter, vbTextCompare) = 1 Then
      c.Add file, file.path
    End If
  Next file

  For Each sf In f.SubFolders
    GetFilesRecursive sf, filter, c, fso
  Next sf
End Sub
Run Code Online (Sandbox Code Playgroud)

不过,这不会是闪电般快速的.只有通过直接使用FindFirstFile和FindNextFile等Win32 API函数才能获得最佳性能.