【发布时间】:2017-09-28 07:27:39
【问题描述】:
我的项目有一个文件夹结构:
- 项目,
- 项目/数据
- 项目/引擎
- 项目/服务器
- 项目/前端
在服务器中(在 Project/Server 文件夹中运行)我指的是这样的文件夹:
var rootFolder = Directory.GetCurrentDirectory();
rootFolder = rootFolder.Substring(0,
rootFolder.IndexOf(@"\Project\", StringComparison.Ordinal) + @"\Project\".Length);
PathToData = Path.GetFullPath(Path.Combine(rootFolder, "Data"));
var Parser = Parser();
var d = new FileStream(Path.Combine(PathToData, $"{dataFileName}.txt"), FileMode.Open);
var fs = new StreamReader(d, Encoding.UTF8);
在我的 Windows 机器上,这段代码运行良好,因为 Directory.GetCurrentDirectory() 引用了当前文件夹,并且正在做
rootFolder.Substring(0, rootFolder.IndexOf(@"\Project\", StringComparison.Ordinal) + @"\Project\".Length);
获取项目的根文件夹(不是 bin 或 debug 文件夹)。
但是当我在 Mac 上运行它时,它得到“Directory.GetCurrentDirectory()”将我发送到 /usr//[其他东西]。它没有引用我的项目所在的文件夹。
在我的项目中查找相对路径的正确方法是什么?我应该在哪里存储数据文件夹,以便解决方案中的所有子项目都可以轻松访问 - 特别是红隼服务器项目?我宁愿不必将其存储在 wwwroot 文件夹中,因为数据文件夹由团队中的其他成员维护,我只想访问最新版本。我有哪些选择?
【问题讨论】:
标签: c# asp.net-core