2011-01-26 107 views
2

我有一个用户的临时文件夹中创建一个文件夹中的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 

回答

2

@giodamelio奇怪的是,我把msgBox dropzone放在你的代码之前,它工作。当我注释掉msgbox它不会工作?

  • 您的代码或pc速度太快! :d
  • 你可能不处理您使用/关闭文件或存储该文件夹中(或不正确关闭)
0

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

+0

这是行不通的。 – giodamelio 2011-01-26 22:28:59

+0

你可以通过cmd删除文件夹吗? – FeRtoll 2011-01-26 22:34:55

+0

是的,我可以通过CMD删除它 – giodamelio 2011-01-26 22:52:40

1

这是非常,非常可能不是一个实际的“拒绝访问”。更可能是“文件打开时无法删除”。关闭该文件夹的所有打开的引用(文本流,处理你可能已经开始了,仔细看),做

fso.DeleteFolder(dropzone) 

MSDN documentation on DeleteFolder()

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 
0

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

1
  • 不,不带计时问题
  • 不,不跟脱手
  • 问题不,不是一个问题,通过MSGBOX解决
  • 不,不带属性的问题
  • 不,不是当前目录路径的问题
  • 不,不能使用杀死
  • 不,它不会拒绝访问
  • 不,你不必掏出
  • 没有,MSDN文档不会告诉你

,你只需要删除路径尾部的反斜杠BECAUSE的DeleteFolder不喜欢。

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