如何解决VBS 错误 - 删除文件时权限被拒绝
我正在编写一个简单的脚本来删除“我的文档”目录中的所有文本文件。该脚本工作正常,但在删除最后一个文件后,它给出了权限被拒绝(错误代码:800A0046)。例如,如果我在目录中有3个.txt文件,则在删除第3个文件后会出现错误。 我不认为这是权限问题,因为在这种情况下,不会删除任何文件。这是我缺少的非常基本的东西。我添加了 1 秒的延迟,这让我可以看到文件一个接一个地被删除。 这是脚本:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFolder = CreateObject("Wscript.Shell").specialfolders("MyDocuments")
Dim objFile
For each objFile in objFolder.Files
If LCase(objFSO.GetExtensionName(objFile.name)) = "txt" Then
objFSO.DeleteFile(objFile),True
Wscript.Sleep 1000
End If
Next
解决方法
您应该更改此行以设置 objFolder :
objFolder = CreateObject("Wscript.Shell").specialfolders("MyDocuments")
到
Set objFolder = objFSO.GetFolder(CreateObject("Wscript.Shell").SpecialFolders("MyDocuments"))
这里是一个快速测试,用于列出我的文档文件夹中的所有文本文件:
Option Explicit
Dim objFSO,objFile,objFolder,MyDoc,F
Set objFSO = CreateObject("Scripting.FileSystemObject")
MyDoc = CreateObject("Wscript.Shell").SpecialFolders("MyDocuments")
Set objFolder = objFSO.GetFolder(MyDoc)
For each objFile in objFolder.Files
If LCase(objFSO.GetExtensionName(objFile.name)) = "txt" Then
F = F & objFile & vbcrlf
End If
Next
wscript.echo F
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。