using Microsoft.AspNetCore.Hosting; using System.IO; using Tiobon.Core.Common.DB.Dapper.Extensions; namespace Tiobon.Core.Common.DB.Dapper.BaseProvider.ServerMapPath; public interface IPathProvider : IDependency { string MapPath(string path); string MapPath(string path, bool rootPath); IWebHostEnvironment GetHostingEnvironment(); } public class PathProvider : IPathProvider { private IWebHostEnvironment _hostingEnvironment; public PathProvider(IWebHostEnvironment environment) { _hostingEnvironment = environment; } public IWebHostEnvironment GetHostingEnvironment() { return _hostingEnvironment; } public string MapPath(string path) { return MapPath(path, false); } /// /// /// /// /// 获取wwwroot路径 /// public string MapPath(string path, bool rootPath) { if (rootPath) { if (_hostingEnvironment.WebRootPath == null) { _hostingEnvironment.WebRootPath = _hostingEnvironment.ContentRootPath + "/wwwroot".ReplacePath(); } return Path.Combine(_hostingEnvironment.WebRootPath, path).ReplacePath(); } return Path.Combine(_hostingEnvironment.ContentRootPath, path).ReplacePath(); } }