zoukankan      html  css  js  c++  java
  • 【转】asp.net core 3.0获取web应用的根目录


    1、需求

    asp.net core 3.0的web项目中,在controller中,想要获取wwwroot下的imgs/banners文件夹下的所有文件;
    在传统的asp.net web应用中,是用Server.MapPath()即可获取到web的根目录;
    但在asp.net core 3.0的web项目中,已不能这样用了;
    在这里插入图片描述

    2、解决方案

    1)、说明

    ASP.NET Core为文件提供了两个不同的位置:

    • 内容根 - 这是应用程序二进制文件和其他私有文件的保存位置。
    • Web根目录 - 这是公共文件的保存位置(Web项目中的wwwroot文件夹)。

    默认情况下,Web根位于内容根目录下。但是也存在Web根位于其他位置的部署。

    2)、具体解决方法

    通过在controller中注册IWebHostEnvironment 即可:

        [Route("api")]
        [ApiController]
        public class resourceController : ControllerBase
        {
            private readonly IWebHostEnvironment _webHostEnvironment;
            public resourceController(IWebHostEnvironment webHostEnvironment)
            {
                _webHostEnvironment = webHostEnvironment;
            }
            [HttpGet("banners")]
            public ActionResult GetBanners()
            {
                string content_path = _webHostEnvironment.ContentRootPath;//D:work\_BASEpspbpspbsrcpspb
                string web_path = _webHostEnvironment.WebRootPath;//D:work\_BASEpspbpspbsrcpspbwwwroot
                DirectoryInfo di = new DirectoryInfo(web_path + "/imgs/banners");
                FileInfo[] fis = di.GetFiles();
                var temp = fis.Select(p => string.Format("imgs/banners/{0}", p.Name));
                return Ok(new { ok = true, data = temp });
            }
        }

    _webHostEnvironment对象的ContentRootPath属性就是内容根目录;
    _webHostEnvironment对象的WebRootPath属性就是web根目录;



    作者:willingtolove

    出处:http://www.cnblogs.com/willingtolove/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    链表中倒数第K个结点
    关于栈的经典问题---判断一个栈的出栈序列是不是有效的
    剑指Offer-用两个栈实现队列
    Netty与NIO
    牛客-反转数字
    N叉树的最大深度-DFS
    version can neither be null, empty nor blank
    剑指 Offer 16. 数值的整数次方
    Vue基础语法与指令
    ES6常用语法
  • 原文地址:https://www.cnblogs.com/hurui1/p/12540183.html
Copyright © 2011-2022 走看看