Asp.Net Core中获取应用程序的物理路径

2019-11-28 16:40:24  阅读 66 次 评论 0 条

       在传统的Asp.Net应用程序中,我们要获取相对路径或虚拟路径对应的服务器物理路径,我们只需要使用Server.MapPath()方法就可以来取得Asp.Net根目录的物理路径:

public class HomeController : Controller{
    public ActionResult Index()
    {
        string path = Server.MapPath("~/");
        return Content(path);
    }
}

       但在Asp.Net Core中不存在Server.MapPath()方法,Controller基类中没有Server属性。如果要在Asp.Net Core中取得物理路径,我们需要通过注入IHostingEnvironment服务对象来取得Web根目录和内容目录的物理路径:

public class HomeController : ExcelController
{
    private readonly IHostingEnvironment _hostingEnvironment;

    public HomeController(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }

    public IActionResult Index()
    {
        string webRootePath = _hostingEnvironment.WebRootPath;
        string contentRootPath = _hostingEnvironment.ContentRootPath;

        return Content(webRootePath + "\n" + contentRootPath);
    }

}

其中webRootPath:一般用于存放我们的静态资源文件,默认为wwwroot,当然我们可以对其进行修改,而contentRootPath则是我们的程序运行的根目录。


本文地址:https://www.yangguangdream.com/?id=2058
版权声明:本文为原创文章,版权归 编辑君 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?