我有一个asp.net网站,有以下目录:
C: 用户桌面 src 测试网站
我在这里创建了另一个名为files的文件夹:
C:UsersDesktopTestingsrcfiles
从我的项目中,我试图从"文件"文件夹中读取文件,我这样做:
var path = HttpContext.Current.Server.MapPath("/files");
我也试过:
var path = HttpContext.Current.Server.MapPath("..");
上面写着Failed to map the path '/files'.
这可能是什么原因呢?它能对我的IIS做点什么吗?我怎么才能让这个工作??
谢谢!
你不能这么做。Server.MapPath
方法只适用于相对于web应用程序根目录的文件夹,在您的情况下是C:UsersDesktopTestingsrcwebsite
。当您离开此ASP的控制域时,您不能使用此方法在层次结构中再上一级。网络应用程序。要做到这一点,你必须使用绝对路径。例如,如果您想读取位于应用程序外部的文件:
var data = File.ReadAllText(@"C:UsersDesktopTestingsrcfilessomefile.txt");
假设网站的虚拟目录映射到…/src/website你需要得到这样的"files"文件夹:
var filesDir = Path.Combine(HttpContext.Current.Server.MapPath("~"), "../files/");