【发布时间】:2017-03-20 21:26:52
【问题描述】:
此时我正在编写一个应该能够在 Windows 和 Linux (Ubuntu 16.04) 上运行的 ASP.NET Core Web 应用程序。我有一些想要存储的数据,但是太少了,使用数据库会极大地浪费性能。更何况安装过程会是原来的两倍。
这就是我想将此信息保存在文件中的原因。在 .NET Framework 中,我会使用 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 之类的东西来获取可以存储应用程序文件的目录。 Unfortunately this method is not available in .NET Core 1.1.
有没有什么方法可以在不硬编码的情况下获取要写入的文件夹?
以下是我要写入的数据示例。此列表中的任何时候都只会有大约 5 台设备。
<devices>
<device>
<id>0</id>
<name>xxx</name>
<physicaladdress>yyyyyyyyy</physicaladdress>
</device>
...
<device>
<id>5</id>
<name>xxx</name>
<physicaladdress>yyyyyyyyy</physicaladdress>
</device>
</devices>
【问题讨论】:
-
App_Data文件夹在任何平台上的 .Net Core 中都没有任何意义。 -
试试this
-
@DavidG 例如,在 Ubuntu 中,应用程序将文件保存在
/var/lib中是很常见的。我希望有这样的目录。 -
为什么不使用
IHostingEnvironment.ContentRootPath中的一些相对文件夹? -
/var/lib是您系统上所有应用程序的全局存储,即使该方法将其作为值返回,它也不会与App_Data表示相同的内容。我会说你执行#if <platform指令会更安全。
标签: c# asp.net-core cross-platform .net-core