2011-12-21 99 views
1

我試圖刪除圖像文件,只要用戶單擊鏈接將其刪除。我沒有得到任何錯誤,錯誤號碼爲零。但是,該文件不會被刪除。我可以保存照片文件,但不能刪除它們出於某種原因。這裏是我的代碼:無法使用ASP DeleteFile方法刪除文件

PhotoFile = "\images\networkPartners\" & rs(fieldName) 
PhotoPath = Server.MapPath(PhotoFile) 
dim ServerFSO 
Set ServerFSO=Server.CreateObject("Scripting.FileSystemObject") 
if ServerFSO.FileExists(PhotoPath) then 
    response.Write(PhotoPath) 

    ServerFSO.DeleteFile(PhotoPath) 
end if 
set ServerFSO=nothing 

當response.write命中時,我確實得到了實際的文件路徑。 (「C:/ web/images」等)一直到文件名。所有大小寫都是正確的,等等。同樣,當我執行「接下來的錯誤恢復」時,根本沒有錯誤,並寫出錯誤號和字符串。

呼喚:

ServerFSO.DeleteFile(PhotoPath, true) 

導致錯誤:

Microsoft VBScript compilation error '800a0414' 

Cannot use parentheses when calling a Sub 

/folder/file_edit.asp, line 32 

ServerFSO.DeleteFile(PhotoPath, true) 
-------------------------------------^ 
+0

這看起來像傳統的ASP,而不是ASP.NET - 你確定你標記正確嗎? – Oded 2011-12-21 15:48:05

+0

對不起,這是。我試着把標籤放在「asp」中,但它表示它不存在。沒想到把「經典」放在它面前。 – James 2011-12-21 15:49:12

回答

5

檢查,如果你的文件被標記爲只讀屬性。如果是這樣,然後使用

FileSystemObject.DeleteFile filename, true 

這將強制刪除一個只讀文件。

+0

我其實已經嘗試過了,但得到錯誤「調用Sub時不能使用圓括號」 ServerFSO.DeleteFile(PhotoPath,true) -------------------- -----------------^ – James 2011-12-21 15:51:00

+0

你有沒有嘗試調用這個沒有括號的Sub?或嘗試調用FileSystemObject.DeleteFile(文件名,真) – 2011-12-21 15:52:22

+0

嗯,我不知道我怎麼會沒有括號稱,但我試圖調用FileSystemObject.etc具有相同的結果錯誤。 – James 2011-12-21 15:56:45

1

我對這個示例代碼的測試顯示括號在這個例子中起作用。

<% 
Set fs=Server.CreateObject("Scripting.FileSystemObject") 
Set fo=fs.GetFolder("c:\") 
Set tfile=fo.CreateTextFile("test.txt",true) 
tfile.WriteLine("Hello World!") 
tfile.Close 
if fs.FileExists("c:\test.txt") then 
    fs.DeleteFile("c:\test.txt") 
end if 
set tfile=nothing 
set fo=nothing 
set fs=nothing 
%> 

然而,它就會失敗時增加了一個力參數:

<% 
Set fs=Server.CreateObject("Scripting.FileSystemObject") 
Set fo=fs.GetFolder("c:\") 
Set tfile=fo.CreateTextFile("test.txt",true) 
tfile.WriteLine("Hello World!") 
tfile.Close 
if fs.FileExists("c:\test.txt") then 
    fs.DeleteFile("c:\test.txt",True) 
end if 
set tfile=nothing 
set fo=nothing 
set fs=nothing 
%> 
-1

應該沒有括號

DeleteFile "c:\test.txt",True 

工作,但還有誰保護一些文件夾,你必須以管理員身份運行。我不知道如何使用腳本來完成它,因爲它沒有在上下文菜單中選擇「run as」。

+2

這個問題在去年12月回來了......不過謝謝。 – James 2012-07-03 15:52:54