1

ユーザーがリンクをクリックして削除するたびに、画像ファイルを削除しようとしています。エラーは発生せず、エラー番号はゼロです。ただし、ファイルは削除されません。写真ファイルを保存できますが、何らかの理由で削除できません。これが私のコードです:

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」など) ファイル名まで。大文字と小文字はすべて正しいなどです。繰り返しますが、「on error resume next」を実行してエラー番号と文字列を書き出すと、エラーはまったく発生しません。

呼び出し:

    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)
-------------------------------------^
4

3 に答える 3

5

ファイルが読み取り専用属性でマークされているかどうかを確認してください。もしそうなら、それを使用してください

FileSystemObject.DeleteFile filename, true 

これにより、読み取り専用ファイルが強制的に削除されます。

于 2011-12-21T15:49:25.587 に答える
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
%>

ただし、force パラメーターを追加すると失敗します。

<%
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
%>
于 2011-12-21T20:33:01.143 に答える
-1

ブラケットなしで動作するはずです

DeleteFile "c:\test.txt",True

ただし、保護されているフォルダーがいくつかあり、管理者として実行する必要があります。コンテキストメニューに「実行」という選択肢がないため、スクリプトでそれを行う方法がわかりません。

于 2012-07-03T14:57:26.323 に答える