为什么我不能使用IO.StreamReader("Resources/file.txt")
的相对路径?
我正在使用网络应用,所以显然该文件不会位于我的开发机器和服务器之间的绝对位置。
如何修复文件名路径以便找到文件?
作为参考,我有一个文件(相对于调用它的页面)在路径“Resources / file.txt”但是愚蠢的函数正在查找根“C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ IDE“。如果重要的话,我现在正在使用.NET 3.5。
感谢。 :)
答案 0 :(得分:2)
使用HttpContext.Current.Server.MapPath(filename)以字符串形式查找文件的相对路径,然后将其传递给IO.StreamReader,如下所示:
Dim sr As New IO.StreamReader(HttpContext.Current.Server.MapPath(filename))
Dim text As String = DirectCast(sr, IO.TextReader).ReadToEnd() 'gives you text
答案 1 :(得分:2)
那是因为您的工作文件夹不是Web根目录所在的位置,而是应用程序所在的位置。在开发Visual Studio应用程序时,在实时服务器上,它将是IIS应用程序所在的位置。
使用虚拟路径和Server.MapPath
方法将其映射到相对于Web根目录的文件夹:
StreamReader(Server.MapPath("Resources/file.txt"))