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 回答