可以使用循环来实现查找指定文件夹及其子文件夹的功能。具体步骤如下:

  1. 首先定义一个函数,传入要查找的文件夹路径和要查找的文件类型,函数返回值为符合条件的文件路径数组。

  2. 在函数中,创建一个文件夹对象,打开要查找的文件夹,获取该文件夹下所有文件和子文件夹的路径。

  3. 遍历文件夹下的所有文件和子文件夹,如果是文件夹,则递归调用该函数,获取该文件夹下符合条件的文件路径数组,将其加入结果数组中。

  4. 如果是文件,则判断其文件类型是否符合要查找的文件类型,如果是,则将其加入结果数组中。

  5. 返回结果数组。

下面是示例代码:

Function FindFiles(ByVal folderPath As String, ByVal fileType As String) As Variant()
    Dim files() As Variant
    ReDim files(0 To 0)
    Dim folder As Object
    Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath)
    Dim file As Object
    For Each file In folder.Files
        If Right(file.Path, Len(fileType)) = fileType Then
            files(UBound(files)) = file.Path
            ReDim Preserve files(0 To UBound(files) + 1)
        End If
    Next
    Dim subFolder As Object
    For Each subFolder In folder.SubFolders
        Dim subFiles() As Variant
        ReDim subFiles(0 To 0)
        subFiles = FindFiles(subFolder.Path, fileType)
        Dim subFile As Variant
        For Each subFile In subFiles
            files(UBound(files)) = subFile
            ReDim Preserve files(0 To UBound(files) + 1)
        Next
    Next
    ReDim Preserve files(0 To UBound(files) - 1)
    FindFiles = files
End Function

使用示例:

Sub TestFindFiles()
    Dim files() As Variant
    files = FindFiles("C:\test", ".txt")
    Dim file As Variant
    For Each file In files
        Debug.Print file
    Next
End Sub

注意:该代码使用了动态数组,需要在使用前声明数组大小,并在使用后将数组大小调整为实际大小,否则可能会造成内存泄漏


原文地址: https://www.cveoy.top/t/topic/d4w6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录