什么是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,以便我们可以告诉您正在使用的平台。