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

File io 无法使用ASP DeleteFile方法删除文件,file-io,asp-classic,filesystemobject,File Io,Asp Classic,Filesystemobject,每当用户单击链接删除图像文件时,我都会尝试将其删除。我没有错误,错误号是零。但是,不会删除该文件。我可以保存照片文件,但不能出于某种原因删除它们。这是我的密码: PhotoFile = "\images\networkPartners\" & rs(fieldName) PhotoPath = Server.MapPath(PhotoFile) dim ServerFSO Set ServerFSO=Server.CreateObject("Scripting.FileSystemObj

每当用户单击链接删除图像文件时,我都会尝试将其删除。我没有错误,错误号是零。但是,不会删除该文件。我可以保存照片文件,但不能出于某种原因删除它们。这是我的密码:

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

检查文件是否标记为只读属性。如果是,则使用

FileSystemObject.DeleteFile filename, true 

这将强制删除只读文件。

检查文件是否标记为只读属性。如果是,则使用

FileSystemObject.DeleteFile filename, true 

这将强制删除一个只读文件。

我对这个示例代码的测试表明,括号在这个示例中起作用

<%
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
%>

我对这个示例代码的测试表明,括号在这个示例中确实有效

<%
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
%>

它应该在没有括号的情况下工作

DeleteFile "c:\test.txt",True

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

它应该在没有括号的情况下工作

DeleteFile "c:\test.txt",True

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

这看起来像是经典的ASP,而不是ASP.NET-您确定标记正确吗?抱歉,是的。我试着加上标签“asp”,但它说它不存在。没有想到在它前面加上“classic”。这看起来像classic ASP,而不是ASP.NET-你确定标记正确吗?对不起,是的。我试着加上标签“asp”,但它说它不存在。没有想到要在它前面加上“classic”。实际上我已经试过了,但出现了错误“调用Sub时不能使用括号”ServerFSO.DeleteFile(PhotoPath,true)----------------------------------------^是否尝试在没有括号的情况下调用此Sub?或者尝试调用FileSystemObject.DeleteFile(filename,true)我不知道如果没有括号我该如何调用它,但是我尝试调用FileSystemObject.etc,结果出现了相同的错误。您是否尝试过ServerFSO.DeleteFile PhotoPath,TrueYes,这一个有效。非常感谢。奇怪的是,所有的例子都用括号括起来。我确实试过这样做,但出现了错误“调用Sub时不能使用括号”ServerFSO.DeleteFile(PhotoPath,true)----------------------------------------^是否尝试在没有括号的情况下调用此Sub?或者尝试调用FileSystemObject.DeleteFile(filename,true)我不知道如果没有括号我该如何调用它,但是我尝试调用FileSystemObject.etc,结果出现了相同的错误。您是否尝试过ServerFSO.DeleteFile PhotoPath,TrueYes,这一个有效。非常感谢。奇怪的是,所有的例子都用括号括起来。这个问题早在去年12月就得到了回答。。。无论如何谢谢。这个问题在去年12月得到了回答。。。不过还是谢谢你。