1

我有一个包含以下目录的 asp.net 网站:

C:\Users\Desktop\Testing\src\website

我在这里有另一个名为“files”的文件夹:

C:\Users\Desktop\Testing\src\files

从我的项目内部,我试图从“文件”文件夹中读取文件,我这样做是这样的:

var path = HttpContext.Current.Server.MapPath("/files"); 

我也试过:

var path = HttpContext.Current.Server.MapPath(".."); 

但它说Failed to map the path '/files'.

这可能是什么原因?它可以对我的 IIS 做些什么吗?我怎样才能得到这个工作?

谢谢!

4

2 回答 2

5

你不能这样做。该Server.MapPath方法仅适用于相对于 Web 应用程序根目录的文件夹,在您的情况下是C:\Users\Desktop\Testing\src\website. 由于您要离开此 ASP.NET 应用程序的控制域,因此无法使用此方法在层次结构中上一层。为此,您必须使用绝对路径。例如,如果您想读取位于应用程序之外的某个文件:

var data = File.ReadAllText(@"C:\Users\Desktop\Testing\src\files\somefile.txt");
于 2011-09-18T14:11:12.080 回答
0

假设网站的虚拟目录映射到 .../src/website 您需要像这样获取“文件”文件夹:

var filesDir = Path.Combine(HttpContext.Current.Server.MapPath("~"), "../files/");
于 2011-09-18T14:14:14.447 回答