在C#中获取文件I / O的应用程序目录

时间:2014-09-17 03:53:10

标签: c# asp.net file-io directory

我正在尝试将文件路径传递给StreamReader而不编写完整路径,因为我将其上传到Web服务器。由于某种原因,我似乎无法让这个工作。这是给我一些问题的代码片段:

StreamReader reader = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + @"\files\randomlist.txt");

当我在Visual Studio中本地运行它时,这是有效的,但是当我将它上传到我的网站时它不起作用。我试图读取的文件的完整路径是:

C:\Users\Jason\Documents\Visual Studio 2013\WebSites\WordFriends\files\randomlist.txt

所以我的问题是,如何编写路径使其在我的Web服务器上运行?或者,如果您有其他解决方案,请告诉我。此外,有人也可以解释为什么这样做不起作用?

StreamReader reader = new StreamReader(@"files\randomlist.txt");

谢谢,
杰森

2 个答案:

答案 0 :(得分:3)

请尝试使用此功能。对Server.MapPath的调用返回与您提供的虚拟路径对应的物理路径,假设" files \ randomlist.txt"是正确的虚拟路径。

StreamReader reader =
    new StreamReader(HttpContext.Current.Server.MapPath(@"files\randomlist.txt"));

答案 1 :(得分:1)

使用Server.MapPath("~")会为您的网站提供根目录

不建议将裤子与 + 连接,而是使用Path.Combine(a, b)

相关问题