C# - 班级

时间:2018-03-11 15:12:04

标签: c# path relative

尝试获取配置文件的相对路径,该文件位于核心项目中的类旁边,并且还尝试避免硬编码的相对路径(即" ../../../ seleniumconfig.json&#34 ;)

这是我的项目结构,

  • Awesome.Core(图书馆项目)
    • Selenium(文件夹)
      • ZSelenium.cs
      • seleniumconfig.json(想要它,所以只有powerusers可以访问此文件)
  • Awesome.OtherProject1(调用项目,引用Awesome.Core)
    • Program.cs的
  • Awesome.OtherProject2(另一个调用项目,引用Awesome.Core)
    • Program.cs的

Program.cs (在Awesome.OtherProject1中)

using (var scope = Container.BeginLifetimeScope())
{
    var selenium = scope.Resolve<ZSelenium>();
    ...
}

ZSelenium.cs

var rootDir = new DirectoryInfo(Environment.CurrentDirectory);
  // "/users/myuser/Documents/MyProject/AwesomeProject.OtherProject"

我可以从rootDir变量构建我的相对路径,但是我会想要避免使用很多硬编码的../../..。此外,如果我从另一个项目调用ZSelenium.cs,相对路径可能会更改。

有谁知道在核心项目中获得ZSelenium.cs路径的更好方法?

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:1)

配置文件永远不属于Programm文件夹。无论如何,我们在Windows 98中做过这样的事情,但当时它还是皱眉头。由于XP不再可靠地编写这样的配置文件。 Programm文件夹受到保护。大多数用户只能读取它们,而不是为了安全起见而写入它们。这包括该用户启动的任何程序。

如果您想存储用户或系统特定的设置,那就是special folders的用途。他们的一个定义目的是,无论用户运行您的程序,都应该读取(并可能写入)他自己和所有共享文件夹。

您可以添加&#34;默认配置&#34;到Programm目录以用作新用户的模式。但即便如此,也存在现有结构(默认用户文件夹),因此您可以将模板放置到安装程序中。