VBS 错误 - 删除文件时权限被拒绝

时间:2021-01-05 07:40:27

标签: vbscript

我正在编写一个简单的脚本来删除“我的文档”目录中的所有文本文件。该脚本工作正常,但在删除最后一个文件后,它给出了权限被拒绝(错误代码: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

1 个答案:

答案 0 :(得分:2)

您应该更改此行以设置 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