【发布时间】:2014-08-04 07:40:50
【问题描述】:
我们正在尝试为我们的应用程序读取一些日志文件,但 FileExists 在每种情况下都失败了。所以我用这个测试代码简化了问题:
Dim filespec, msg
filespec = Chr(34) & "C:\Windows\explorer.exe" & Chr(34)
'filespec = "C:\Windows\explorer.exe"
'filespec = Chr(34) & "C:" & Chr(34)
'filespec = "C:"
'filespec = "default.asp"
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(filespec)) Then
msg = filespec & " exists."
Else
msg = filespec & " doesn't exist."
End If
Response.Write(msg)
如您所见,我们尝试了添加和不添加 Chr(32)(即双引号字符)的测试。我们正在针对文件 C:\Windows\explorer.exe 进行测试,并且文件 C:\Windows\explorer.exe 确实存在于托管 asp 文件和 iis 服务器的计算机上。我们甚至在简单地检查 C 驱动器是否存在时也会失败。
此外,如果我们尝试查看 default.asp 文件是否存在并且该文件与我们的 filetest.asp 文件位于同一目录中,它甚至会失败。
有人知道为什么我们的 FileExists 总是失败吗?谢谢。
【问题讨论】:
-
一个有趣的补充:检查文件夹将起作用 Dim NewFolder NewFolder = "C:\Windows" If (fso.FolderExists(NewFolder)) Then msg = NewFolder & " exists."否则 msg = NewFolder & " 不存在。" End If Response.Write(msg) Response.Write("
") 但是检查文件夹中已显示存在的文件仍然失败。 -
奇怪的是,现在 filespec = "C:\Windows\explorer.exe" 可以工作了。但是在同一个目录下找default.asp就不行了。
-
不要使用额外的引号或
Chr(34)。不需要它们。
标签: asp.net iis vbscript file-exists