Excel vba——递归算法导出所有文件夹和文件

 Public textfile As String
 Sub 递归函数输出所有文件和文件夹()
'yngqq443440204@2024年7月31日11:14:28
    'On Error Resume Next
    textfile = "C:\Users\Administrator\Desktop\1.txt"
    Open textfile For Output As #1
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 假设输出到Sheet1
    ws.Cells.Clear ' 清除Sheet1的所有内容
    ws.Cells(1, 1).Value = "路径/文件名" ' 标题
      
    ' 从E盘根目录开始遍历
    Call TraverseFolder("G:\", 2)
    MsgBox "ok"
    Close #1
End Sub
Sub TraverseFolder(folderPath As String, row As Long)
Dim ws As Worksheet
Set ws = ActiveSheet
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    Dim folder As Object
    Set folder = fs.GetFolder(folderPath)
    Dim subFolder As Object
    Dim file As Object
      
    ' 遍历子文件夹
    For Each subFolder In folder.SubFolders
        If InStr(1, subFolder.path, "System Volume Information", 1) > 0 Then '出现这个会拒绝访问,停止扫描接下来文件夹
             'Stop
        Else
             
                Print #1, subFolder.path ' & vbCrLf
              
                ws.Cells(row, 1).Value = subFolder.path
                row = row + 1
                ' 递归调用
                Call TraverseFolder(subFolder.path, row)
        End If
     Next subFolder
    
    ' 遍历文件
    For Each file In folder.Files
    
        Print #1, file.path ' & vbCrLf
     
        ws.Cells(row, 1).Value = file.path
        row = row + 1
    Next file
End Sub

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山水CAD插件定制

你的鼓励是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值