ASP.Net WebApi Netcore 2.2 доступ к локальному файлу - PullRequest
0 голосов
/ 07 марта 2019

Я где-то читал, что в .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);

1 Ответ

0 голосов
/ 09 апреля 2019

Есть один способ, который работает для меня с .Net core 2.2.

Вы можете получить доступ к файлу в вашем .Net приложении, используя следующую строку.

 string path = Path.Combine(Directory.GetCurrentDirectory),filename);

И скопироватьВаш файл в Docker-контейнере при создании образа.

COPY --from=build /app/ .
COPY --from=build /app/[folder-where-file]/ .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...