无法通过StreamReader获取正确的文件路径

时间:2012-05-20 10:57:50

标签: c# asp.net .net streamreader

在我的MVC应用程序中,我试图打开一个文件,通过StreamReader读取,我给它的路径就是这样,保持文件从bin文件夹的相对位置:

TextReader tr = new StreamReader("Content/files/text/email.txt");

但是当我正在运行它时会发现错误:

  

无法找到路径“C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ DevServer \ 10.0 \ Content \ files \ text \ email.txt”的一部分。

这是非常令人困惑的,因为我不知道如何阻止它停止从根目录读取路径但是从应用程序根文件夹中读取它。

2 个答案:

答案 0 :(得分:1)

使用Application.StartupPathDirectory.GetCurrentDirectory

TextReader tr = 
     new StreamReader(
         Path.Combine(Directory.GetCurrentDirectory(), 
                      "Content", "files", "text", "email.txt")
         );

答案 1 :(得分:1)

如果你在谈论winforms应用程序,你应该这样做。

var tr = new StreamReader(Path.Combine(Application.StartupPath, @"Content\files\text\email.txt"));

更新: 您不需要StreamReader用于Web应用程序。这很简单:

string text = new WebClient().DownloadString("URL_TO_WHEREEVER");