执行程序集中的相对路径

时间:2011-04-19 23:10:34

标签: c#

我正在进行单元测试,测试生成文件的应用程序中的方法。所以我决定将一个预期的文件放在一个名为Resource / Empower /的目录中。 资源文件夹与Unit Test项目的bin文件夹处于同一级别。

现在我要做的是获取文件名的路径。我不能硬代码,因为我不确切知道构建服务器上的驱动器。

那么我该如何获取文件的相对路径。假设文件名是expectedMasterFileSetUp.txt

我想要路径Resource/Empower/ExpectedMasterFileSetUp.txt

2 个答案:

答案 0 :(得分:3)

为什么要使用URI?

string AbsolutePathRelativeToEntryPointLocation( string relativePath )
{
  Assembly entryPoint    = Assembly.GetEntryAssembly() ;
  string   basePath      = Path.GetDirectoryName( entryPoint.Location ) ;
  string   combinedPath  = Path.Combine( basePath , relativePath )      ;
  string   canonicalPath = Path.GetFullPath( combinedPath ) ;

  return canonicalPath ;
}

答案 1 :(得分:1)

对结果使用Path.GetDirectoryName() new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath 然后Path.Combine()你的相对路径到最后。