2011-01-26 157 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不喜歡。

現在,隨意拍攝信使...