Я где-то читал, что в .NetCore 2.2 есть ошибка в методе GetCurrentDirectory
. https://github.com/aspnet/AspNetCore/issues/4206
У нас есть ASP.Net WebApi с netcore 2.2.
Мне было интересно, как лучше всего получить доступ к локальному файлу, который находится в моем корневом каталоге.
Слишком много примеров, но я ищу лучшую практику, которая будет работать локально и на производстве (докер-контейнер).
В настоящее время я использую этот синтаксис:
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
string csvPath = Path.Combine(baseDirectory, fileName);
Файл csv всегда будет копироваться в выходной каталог, а после публикации он будет находиться в той же папке, что и исполняемые файлы.
Другой синтаксис, такой как:
Введите IHostingEnvironment
в службу, а затем позвоните ContentRootPath
. как это:
private readonly IHostingEnvironment _hostingEnvironment;
public Service(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
string csvPath = Path.Combine(_hostingEnvironment.ContentRootPath, fileName);