在ASP.NET中的外部C#类中使用Server.MapPath

Che*_*het 127 c# asp.net file path relative-path

我试图获取C#类中某些文件的绝对路径. Server.MapPath当然对ASPX及其代码隐藏页面很有用,但在另一个类文件中不存在.我试过HostingEnvironment.MapPath(),但是抱怨说不允许相对虚拟路径.有什么想法吗?

System.Web 已导入.

wom*_*omp 293

ServerUtility课程可作为您的实例使用HttpContext.如果你所处的环境中你知道它将在ASP.Net管道中执行,你可以使用

HttpContext.Current.Server.MapPath()
Run Code Online (Sandbox Code Playgroud)

你必须导入System.Web.

  • 如果没有在该管道中执行该怎么办? (6认同)

Yak*_*nor 33

你也可以用:

var path = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/myfile.txt")
Run Code Online (Sandbox Code Playgroud)

如果

var path = Server.MapPath("~/App_Data");
var fullpath = Path.Combine(path , "myfile.txt");
Run Code Online (Sandbox Code Playgroud)

无法进入


Dan*_*plo 8

你不能只是添加一个引用System.Web,然后你可以使用Server.MapPath

编辑:现在我建议使用HostingEnvironment.MapPath方法:

它是一种静态方法,System.Web用于将虚拟路径映射到服务器上的物理路径.它并不需要一个参考HttpContext.