代码之家  ›  专栏  ›  技术社区  ›  Ovi Tisler

JavaStase.GETFACTS(“用户.dir”)的.NET等价物是什么?

  •  3
  • Ovi Tisler  · 技术社区  · 15 年前

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

    Directory.GetCurrentDirectory();
    

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

    System.getProperty("user.dir")
    

    用Java语言

    2 回复  |  直到 15 年前
        1
  •  1
  •   Christian Hayter    15 年前
    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") .
        2
  •  0
  •   3Dave    15 年前
    string filePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
    string folderPath = System.IO.Path.GetDirectoryName(filePath);
    

    此外,最好用win forms、wpf或asp net标记您的c posts,这样我们就可以知道您使用的是什么平台。

    推荐文章