我正在尝试在单元测试中获取文件的完整路径,该文件位于项目的文件夹中。 我尝试使用
Directory.GetCurrentDirectory();
但是返回运行我的测试的目录。我想要项目(或解决方案)的目录,而不必在那里硬编码。然后我可以附加文件名的最后一部分。类似于
的东西System.getProperty("user.dir")
在java中
答案 0 :(得分:1)
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
将为您提供运行单元测试DLL本身的路径。
要访问项目子文件夹中的文件,最简单的方法是将相关文件标记为Build Action = Content
和Copy 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#帖子,以便我们可以告诉您正在使用的平台。