2011-04-19 28 views
2

我正在處理生成文件的應用程序中測試方法的單元測試。所以我決定把一個預期的文件放在名爲Resource/Empower /的目錄中。 資源文件夾與單元測試項目的bin文件夾位於同一級別。正在執行程序集中的相對路徑

現在我想要做的就是獲取文件名的路徑。我不能硬編碼,因爲我不確切知道構建服務器上的驅動器。

那麼如何獲得文件的相對路徑。可以說,如果文件名是expectedMasterFileSetUp.txt

我想要的路徑Resource/Empower/ExpectedMasterFileSetUp.txt

回答

1

使用Path.GetDirectoryName()上 new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath 然後Path.Combine()你到年底的相對路徑的結果。

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 ; 
} 
+0

GetFullPath在這裏有什麼意義? Path.Combine是否已經返回完整路徑,或者這是否會自動擴展'..'之類的內容? – MarqueIV 2013-10-14 23:36:06

相關問題