无法使用ASP DeleteFile方法删除文件

时间:2011-12-21 15:45:51

标签: file-io asp-classic filesystemobject

每当用户点击要删除的链接时,我都会尝试删除图片文件。我没有错误,错误号为零。但是,该文件不会被删除。我可以保存照片文件,但不能因某些原因删除它们。这是我的代码:

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

3 个答案:

答案 0 :(得分:5)

检查您的文件是否标有readonly属性。如果是,那么使用

FileSystemObject.DeleteFile filename, true 

这将强制删除只读文件。

答案 1 :(得分: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
%>

答案 2 :(得分:-1)

它应该没有括号

DeleteFile "c:\test.txt",True

但是有些文件夹受到保护,您必须以管理员身份运行。我不知道如何使用脚本,因为它没有在上下文菜单中选择“运行为”。