VBS 优化代码:跳过无权限文件夹
以下是优化后的代码,跳过无权限的文件夹位置:
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
原文地址: https://www.cveoy.top/t/topic/bQYD 著作权归作者所有。请勿转载和采集!