ASP.Net WebApi netcore 2.2访问本地文件

时间:2019-03-07 14:33:37

标签: c# asp.net-web-api .net-core

我读到某处.NetCore 2.2在GetCurrentDirectory方法中存在一个错误。 https://github.com/aspnet/AspNetCore/issues/4206

我们有一个带有netcore 2.2的ASP.Net WebApi。

我想知道,访问位于我的根目录中的本地文件的最佳方法是什么。

有太多示例,但是我正在寻找在本地和生产环境(docker容器)上都可以使用的最佳实践。 目前,我使用以下语法:

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 :(得分:0)

有一种方法可以通过.Net core 2.2为我工作。

您可以使用以下行访问.Net应用程序中的文件。

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

并在构建映像时将文件复制到docker容器中。

COPY --from=build /app/ .
COPY --from=build /app/[folder-where-file]/ .