Server.MapPath方法的应用方法

本文详细介绍了ASP.NET中Server.MapPath方法的应用技巧,包括如何获取应用程序根目录、所在页面的当前及上级目录等多种路径。

Server.MapPath方法的应用方法

 

老是忘记Server.MapPath的使用方法了,下面记录一下,以备后用:
总注:Server.MapPath获得的路径都是服务器上的物理路径,也就是常说的绝对路径
1、Server.MapPath("/")
注:获得应用程序根目录所在的位置,如 C:/Inetpub/wwwroot/。
2、Server.MapPath("./")
注:获得所在页面的当前目录,等价于Server.MapPath("")。
3、Server.MapPath("../")
注:获得所在页面的上级目录。
4、Server.MapPath("~/")
注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:/Inetpub/wwwroot/Example/。

在ASP.NET Core中,由于没有直接的`Server.MapPath`方法,可使用`IWebHostEnvironment`服务来实现类似功能。`IWebHostEnvironment`提供了对应用程序环境信息的访问,其中`ContentRootPath`和`WebRootPath`属性可用来获取物理路径。 以下是一个示例代码,展示了如何在ASP.NET Core中使用`IWebHostEnvironment`来实现类似`Server.MapPath`的功能: ```csharp using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Hosting; public class HomeController : Controller { private readonly IWebHostEnvironment _hostingEnvironment; public HomeController(IWebHostEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; } public IActionResult Index() { // 假设要获取相对路径 "wwwroot/images/test.jpg" 的物理路径 string relativePath = "wwwroot/images/test.jpg"; string physicalPath = System.IO.Path.Combine(_hostingEnvironment.WebRootPath, relativePath.Replace("wwwroot/", "")); // 若要获取内容根目录下的相对路径的物理路径 string contentRelativePath = "App_Data/test.txt"; string contentPhysicalPath = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, contentRelativePath); return Ok($"WebRoot物理路径: {physicalPath}, ContentRoot物理路径: {contentPhysicalPath}"); } } ``` 在上述代码中,`IWebHostEnvironment`通过依赖注入的方式被注入到`HomeController`中。`WebRootPath`用于获取`wwwroot`目录的物理路径,`ContentRootPath`用于获取应用程序内容根目录的物理路径。通过`System.IO.Path.Combine`方法,可以将相对路径与根路径组合成完整的物理路径。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值