VBScript无法删除文件夹

时间:2011-01-26 22:13:09

标签: file-io vbscript

我有一个VBScript程序,可以在用户的​​临时文件夹中创建一个文件夹:

set fso = CreateObject("scripting.FileSystemObject")
temp = fso.GetSpecialFolder(2)
dropzone = temp & "\{d450c76c-2ad8-4f73-af8a-ccc5ba28036a}\"

If Not fso.FolderExists(dropzone) Then 
    set NewFolder = fso.CreateFolder(dropzone)
End If
set NewFolder = Nothing

在程序结束时,我想删除该文件夹。我尝试了这个,但它给了我一个允许拒绝错误:

set deletefolder = fso.GetFolder(dropzone)
deletefolder.Delete(True) 
set fso = Nothing

8 个答案:

答案 0 :(得分:2)

@giodamelio奇怪的是,我把代码行msgBox dropzone放在你的代码之前就行了。当我发表评论msgbox它不起作用?

  • 您的代码或电脑太快了! :d
  • 您可能不会处置/关闭您在该文件夹中使用或存储的文件(或未正确关闭)

答案 1 :(得分:2)

  • 不,不是时间问题
  • 不,不是dispose的问题
  • 不,不是MsgBox解决的问题
  • 不,没有属性问题
  • 不,当前目录路径没有问题
  • 不,不能使用Kill
  • 不,这不是拒绝访问
  • 不,你不必外出
  • 不,MSDN文档不会告诉你

由于删除文件并不喜欢,因此您必须删除路径中的拖尾空白。

现在,随时拍摄信使......

答案 2 :(得分:1)

这很可能不是真正的“访问被拒绝”。更可能是“文件打开时无法删除”。关闭对该文件夹的任何打开引用(文本流,您可能已启动的进程,仔细查看)并执行

fso.DeleteFolder(dropzone)

请参阅MSDN documentation on DeleteFolder()

答案 3 :(得分:1)

检查文件的属性,如果尚未设置,则设置为0.

set deletefolder = fso.GetFolder(dropzone)
if deletefolder.Attributes=0 then
 deletefolder.Delete(True)
else
 deletefolder.Attributes=0
 deletefolder.Delete(True)
end if
set fso = Nothing

答案 4 :(得分:0)

尝试使用 Kill(“”文件夹路径“

答案 5 :(得分:0)

要使DeleteFolder工作,脚本的当前目录不应该是要删除的文件夹路径的一部分。 使用Shell.CurrentDirectory将当前目录更改为某个系统路径,然后调用DeleteFolder。 我已经证实这是有效的。 查看this.

答案 6 :(得分:0)

即使将其属性设置为0,我仍然获得拒绝权限 它仍然是16。

我知道这不是答案。 但我不想为相同的查询打开一个新线程。 我也尝试过针对特定路径执行任务终止。enter image description here

$(document).ready(function(){
    $('Form').attr("target", "_blank");
});

答案 7 :(得分:-1)

如果您的文件夹路径带有反斜杠,则该方法将引发错误!我的大多数脚本有意使用其他功能在路径末尾加反斜杠,因此我删除了路径的最后一个字符(反斜杠)和中提琴!