首页 / 问答 / .NET Core应用程序中如何像使用Server.MapPath一样获取当前程序执行的绝对路径?

.NET Core应用程序中如何像使用Server.MapPath一样获取当前程序执行的绝对路径?

0

在传统的ASP.NET应用程序中,可以使用Server.MapPath()方法来获取当前程序的绝对路径,但在.NET Core应用程序中Server.MapPath()方法已不再可用,那么在.NET Core中要获取当前应用程序的执行路径应该如何实现呢?

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    在.NET Core 3.0以前,可以在控制器中注入IHostingEnvironment,然后调用WebRootPath()方法来获取当前应用的wwwroot目录的路径,如下:

    在.NET Core 3.0+版本中,请使用IWebHostEnvironment替换IHostingEnvironment,如下:

    或者,你也可以实现自己的路径提供程序,如下:

    然后,在Startup.cs中注册IPathProvider的服务,如下:

    最后,在控制器中注入IPathProvider,如下:

    Rector的个人主页

    Rector

    2020-01-17 回答

    • 0

      在.NET Core应用程序中,还有一种更好的解决方案,即使用IFileProvider.GetFileInfo(),控制器使用示例如下:

      Startup.cs注册IFileProvider的服务,如下:

      Rector的个人主页

      Rector

      2020-01-17 回答

      我来回答