• 【.Net Core】获取绝对路径、相对路径


    一、绝对路径

    1、获取应用程序运行当前目录Directory.GetCurrentDirectory()。

    System.IO命名空间中存在Directory类,提供了获取应用程序运行当前目录的静态方法GetCurrentDirectory,

    但根据.net core的设计,此方法不是真正的获取应用程序的当前方法,而是执行dotnet命令所在目录,

    var path =  Directory.GetCurrentDirectory()

    执行结果:

    E:project24-dingding-saasCodeDBen.Ding.SaaS.WebMobile

    要获取应用程序运行当前目录,只能通过变通的方案解决。

    如:1、在应用程序的目录执行dotnet命令,

      2、或者通过其他方案。

    如下代码是一种可以获取应用程序的当前目录:

     dynamic type = (new Program()).GetType();
     string currentDirectory = Path.GetDirectoryName(type.Assembly.Location);
     Console.WriteLine(currentDirectory);

    执行结果:

    E:project24-dingding-saasCodeDBen.Ding.SaaS.WebMobileinDebug
    etcoreapp2.0DBen.Ding.SaaS.WebMobile.dll

    二、相对路径

    从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;
                string contentRootPath = _hostingEnvironment.ContentRootPath;
    
                return Content(webRootPath + "
    " + contentRootPath);
            }
        }
    }

    执行结果:

    /Code/DBen.Ding.SaaS.WebMobile/wwwroot
    /Code/DBen.Ding.SaaS.WebMobile
  • 相关阅读:
    unity的canvas动静分离(转)
    xlua委托和事件
    Xlua的ni和C#的null
    记一次xlua热更问题(lua给c#加事件)
    java程序代写+收徒
    linux查看文件内容 检索关键字内容
    72:内网安全-域横向CS&MSF联动及应急响应初识
    71:内网安全-域横向网络&传输&应用层隧道技术
    70:内网安全-域横向内网漫游Socks代理隧道技术
    69:内网安全-域横向CobaltStrike&SPN&RDP
  • 原文地址:https://www.cnblogs.com/xuwendong/p/8900294.html
Copyright © 2020-2023  润新知