VBScript 遍历文件夹并跳过无权限位置
下面的代码是在 VBScript 中实现跳过文件夹无权限位置的方法。在遍历文件夹时,使用 'On Error Resume Next' 语句来跳过访问无权限的文件夹,继续遍历其他文件夹。如果有文件夹无权限,那么在文件夹列表.txt 中会显示该文件夹的路径,但是在文件列表.txt 中不会列出其下的文件。
代码中需要用户输入要遍历的文件夹位置,该位置会保存在 AAA 变量中。然后通过 GetFolder 方法获取该文件夹对象,再调用 ListFolder 子过程来遍历该文件夹及其子文件夹。
在 ListFolder 子过程中,先将当前文件夹的路径写入文件夹列表.txt,然后遍历文件夹中的文件,并将文件路径写入文件列表.txt。接着使用递归的方式遍历子文件夹,也会将子文件夹的路径写入文件夹列表.txt,并继续遍历子文件夹中的文件。
最后,关闭文件夹列表.txt 和文件列表.txt。
请注意,这段代码只能跳过无权限的文件夹,不能跳过无权限的文件。如果遇到无权限的文件,仍然会报错。
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
ListFolder objSubFolder
Next
End Sub
' 关闭文件
objOutFolder.Close
objOutFile.Close
原文地址: https://www.cveoy.top/t/topic/bQ0m 著作权归作者所有。请勿转载和采集!