分享

三、遍历目标文件夹内所有文件、以及所有子文件夹中的所有文件。

 Excel实用知识 2021-05-22

Sub ListFilesTest()

    With Application.FileDialog(msoFileDialogFolderPicker)

        If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub

    End With

    If Right(myPath, 1) <> "" Then myPath = myPath & ""

    [a:a] = ""                    '清空A列

    Call ListAllFso(myPath)   '调用FSO遍历子文件夹的递归过程

End Sub

Function ListAllFso(myPath$) '用FSO方法遍历并列出所有文件和文件夹名的【递归过程】

    Set fld = CreateObject("Scripting.FileSystemObject").GetFolder(myPath)

    '用FSO方法得到当前路径的文件夹对象实例 注意这里的【当前路径myPath是个递归变量】

    For Each f In fld.Files  '遍历当前文件夹内所有【文件.Files】

        [a65536].End(3).Offset(1) = f.Name '在A列逐个列出文件名

    Next

    For Each fd In fld.SubFolders  '遍历当前文件夹内所有【子文件夹.SubFolders】

        [a65536].End(3).Offset(1) = " " & fd.Name & ""  '在A列逐个列出子文件夹名

        Call ListAllFso(fd.Path)       '注意此时的路径变量已经改变为【子文件夹的路径fd.Path】

        '注意重点在这里: 继续向下调用递归过程【遍历子文件夹内所有文件文件夹对象】

    Next

End Function

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多