如果要得到传统的ASP.Net应用程序中的相对路径或虚拟路径对应的服务器物理路径,只需要使用使用Server.MapPath()方法来取得Asp.Net根目录的物理路径,如下所示:

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

但是在ASPNET Core中不存在Server.MapPath()方法,Controller基类也没有Server属性。

在Asp.Net Core中取得物理路径:

从ASP.NET Core RC2开始,可以通过注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径,如下所示:

using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc; namespace AspNetCorePathMapping
{
public class HomeController : Controller
{
private readonly IHostingEnvironment _hostingEnvironment; public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
} public ActionResult Index()
{
string webRootPath = _hostingEnvironment.WebRootPath; //F:\数据字典\Centa.Data.Dictionary\Centa.Data.Web\wwwroot
string contentRootPath = _hostingEnvironment.ContentRootPath; //F:\数据字典\Centa.Data.Dictionary\Centa.Data.Web return Content(webRootPath + "\n" + contentRootPath);
}
}
}

ASP.NET Core RC1

在ASP.NET Core RC2之前 (就是ASP.NET Core RC1或更低版本),通过 IApplicationEnvironment.ApplicationBasePath 来获取 Asp.Net Core应用程序的根目录(物理路径) :

using Microsoft.AspNet.Mvc;
using Microsoft.Extensions.PlatformAbstractions; namespace AspNetCorePathMapping
{
public class HomeController : Controller
{
private readonly IApplicationEnvironment _appEnvironment; public HomeController(IApplicationEnvironment appEnvironment)
{
_appEnvironment = appEnvironment;
} public ActionResult Index()
{
return Content(_appEnvironment.ApplicationBasePath);
}
}
}

.Net Core api 中获取应用程序物理路径wwwroot的更多相关文章

  1. Asp.Net Core 中获取应用程序物理路径(Getting the Web Root Path and the Content Root Path in ASP.NET Core)

    如果要得到传统的ASP.Net应用程序中的相对路径或虚拟路径对应的服务器物理路径,只需要使用使用Server.MapPath()方法来取得Asp.Net根目录的物理路径,如下所示: // Classi ...

  2. [转] ASPNET Core 中获取应用程序物理路径

    如果要得到传统的ASP.Net应用程序中的相对路径或虚拟路径对应的服务器物理路径,只需要使用使用Server.MapPath()方法来取得Asp.Net根目录的物理路径,如下所示: // Classi ...

  3. [C#]中获取当前程序运行路径的方法

    获取当前程序运行路径: ①//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集.string str = System.AppDomain.CurrentDoma ...

  4. 定时发布任务,在global.asax中获取文件的物理路径的方法

    如果要把一个相对路径或者虚拟路径映射道服务器的物理路径,通常会使用Server.MapPath()函数,比如将根目录下的html目录映射为物理路径:Server.MapPath("html& ...

  5. Android中获取应用程序(包)的大小-----PackageManager的使用(二)

    通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidMani ...

  6. PHP中如何获取网站根目录物理路径

    在php程序开发中经常需要获取当前网站的目录,我们可以通过常量定义获取站点根目录物理路径,方便在程序中使用. 下面介绍几种常用的获取网站根目录的方法. php获取网站根目录方法一: <?php ...

  7. C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径

    C# 获取当前服务器运行程序的根目录,获取当前运行程序物理路径 string tmpRootDir = AppDomain.CurrentDomain.BaseDirectory;//获得当前服务器程 ...

  8. Vue3 组合式 API 中获取 DOM 节点的问题

    模板引用 Vue 提供了许多指令让我们可以直接操作组件的模板.但是在某些情况下,我们仍然需要访问底层 DOM 元素.在模板中添加一个特殊的属性ref就可以得到该元素. 访问模板引用 <scrip ...

  9. Linux中获取当前程序的绝对路径

    代码如下: char current_absolut_path[MAX_SIZE] = ""; memset(current_absolut_path,,MAX_SIZE); // ...

随机推荐

  1. Winform最基础的DBHelper类

    PS:我已经忘记了n遍了 class DBHelper { //连接数据库 public static string connstring = @"Data Source=DESKTOP-8 ...

  2. 原声js数组去重方法

    数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ...

  3. System.PlatformNotSupportedException:“Operation is not supported on this platform.”

    vs2019创建.net core3.1 的控制台应用程序 执行以下代码: using System; using System.Diagnostics; using System.Threading ...

  4. iOS -App主流框架UINavigationController && UITabBarController的简单使用

     一个iOS app几乎没有由一个控制器组成,除非这个app非常简单.       当app中有多个控制器的时候,就需要对这些控制器进行管理,用1个控制器去管理其他多个控制器:       如图所示: ...

  5. Pytest单元测试框架——Pytest+Allure+Jenkins的应用

    一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架 ...

  6. matplotlib 示例

    示例1 import numpy as np import matplotlib.pyplot as plt #plt.rcParams['font.family'] = ['sans-serif'] ...

  7. fedora gtk+ 2.0环境安装配置

    1.安装gtk yum install gtk2 gtk2-devel gtk2-devel-docs 2.测试是否安装成功 pkg-config --cflags --libs gtk+-2.0 执 ...

  8. Ubuntu18.04美化MacOS(新更grub界面美化)

    写在前面的话: 在美化过程中大多数资源来自境外网站,下载时速度特别慢,写这篇博客一是为了给读者看,也是为了自己保存资源并记录ubuntu18.04的使用,避免你们或是自己以后再花费大量时间去百度方法和 ...

  9. 最后一面挂在volatile关键字上,面试官:重新学学Java吧!

    最后一面挂在volatile关键字上,面试官:重新学学Java吧! 为什么会有volatile关键字? volatile: 易变的; 无定性的; 无常性的; 可能急剧波动的; 不稳定的; 易恶化的; ...

  10. tcpdump抓包工具的基本使用

    为了更好的深入理解计算机网络等相关知识,例如TCP\UDP\IP等,我们就必须利用tcpdump.Wireshark等工具对网络进行分析.本篇博文主要记录一下tcpdump这个网络分析利器的一些基本使 ...