目录
asp.net core 3.0的web项目中,在controller中,想要获取wwwroot下的imgs/banners文件夹下的所有文件;
在传统的asp.net web应用中,是用Server.MapPath()即可获取到web的根目录;
但在asp.net core 3.0的web项目中,已不能这样用了;
ASP.NET Core为文件提供了两个不同的位置:
内容根
- 这是应用程序二进制文件和其他私有文件的保存位置。Web根目录
- 这是公共文件的保存位置(Web项目中的wwwroot文件夹)。默认情况下,Web根位于内容根目录下。但是也存在Web根位于其他位置的部署。
通过在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\_BASE\pspb\pspb\src\pspb\ string web_path = _webHostEnvironment.WebRootPath;//D:\work\_BASE\pspb\pspb\src\pspb\wwwroot 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根
目录;
评论(
0) © 2014
mamicode.com 版权所有
京ICP备13008772号-2 联系我们:gaon5@hotmail.com 迷上了代码!