以下是优化后的代码,跳过无权限的文件夹位置:

On Error Resume Next '跳过错误 ' 设置路径和文件名 a=createobject('Scripting.FileSystemObject').GetFolder('.').Path AAA=inputbox('填写文件位置:') A1 = a & '\文件1.txt' A2 = a & '\文件2.txt'

' 创建文件夹列表.txt和文件列表.txt Set objFSO = CreateObject('Scripting.FileSystemObject') Set objOutFolder = objFSO.CreateTextFile(A1, True) Set objOutFile = objFSO.CreateTextFile(A2, True) ' 遍历文件夹A Set objFolder = objFSO.GetFolder(AAA) ListFolder objFolder

Sub ListFolder(objFolder) ' 输出文件夹名到文件夹列表.txt objOutFolder.WriteLine(objFolder.Path)

' 遍历文件夹中的文件
For Each objFile In objFolder.Files
    ' 输出文件名到文件列表.txt
    objOutFile.WriteLine(objFile.Path)
Next

' 递归遍历子文件夹
For Each objSubFolder In objFolder.SubFolders
    ' 检查是否有权限访问子文件夹
    If CanAccessFolder(objSubFolder) Then
        ListFolder objSubFolder
    End If
Next

End Sub

Function CanAccessFolder(objSubFolder) ' 检查是否有权限访问文件夹 On Error Resume Next objFSO.GetFolder(objSubFolder.Path) If Err.Number <> 0 Then CanAccessFolder = False Else CanAccessFolder = True End If On Error GoTo 0 End Function

' 关闭文件 objOutFolder.Close objOutFile.Close

VBS 优化代码:跳过无权限文件夹

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

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