什么是java的System.getProperty(“user.dir”)的.NET等价物?

时间:2009-12-01 16:22:28

标签: c# .net visual-studio visual-studio-2008

我正在尝试在单元测试中获取文件的完整路径,该文件位于项目的文件夹中。 我尝试使用

Directory.GetCurrentDirectory();

但是返回运行我的测试的目录。我想要项目(或解决方案)的目录,而不必在那里硬编码。然后我可以附加文件名的最后一部分。类似于

的东西
System.getProperty("user.dir")

在java中

2 个答案:

答案 0 :(得分:1)

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)

将为您提供运行单元测试DLL本身的路径。

要访问项目子文件夹中的文件,最简单的方法是将相关文件标记为Build Action = ContentCopy to Output Directory = Copy if newer。如果这样做,那么无论何时构建项目,它们都将被复制到正在运行的程序集文件夹下的相关文件夹中。然后,您可以计算相对于正在运行的程序集的物理路径。

例如:

  • 您的文本文件位于<project root>\TestData\Data1.txt
  • 在调试模式下构建项目时,它将被复制到<project root>\bin\Debug\TestData\Data1.txt
  • 代码中的物理路径为Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TestData\Data1.txt")

答案 1 :(得分:0)

string filePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string folderPath = System.IO.Path.GetDirectoryName(filePath);

此外,最好使用win-forms,WPF或asp-net标记您的c#帖子,以便我们可以告诉您正在使用的平台。