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

我试图在我的unit testing中获取文件的完整路径,该文件位于我的项目中的文件夹中。 我试过用

Directory.GetCurrentDirectory(); 

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

 System.getProperty("user.dir") 

在java中

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

将为您提供运行unit testingDLL本身的路径。

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

例如:

  • 您有一个位于\TestData\Data1.txt的文本文件。
  • 在调试模式下构建项目时,它将被复制到\bin\Debug\TestData\Data1.txt
  • 代码中的物理路径是Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TestData\Data1.txt")
 string filePath = System.Reflection.Assembly.GetExecutingAssembly().Location; string folderPath = System.IO.Path.GetDirectoryName(filePath); 

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