2012-01-19 62 views
4

我的一位同事正在尋找在System.IO的方法,將做到這一點:尋找類似的東西,以Path.Combine瀏覽文件夾

var path1 = "c:\\temp\\foo\\bar"; 
var path2 = "..\\..\\foo2\\file.txt"; 

var path3 = Path.Combine2(path1, path2); 
// path3 = "c:\\temp\\foo2\\file.txt" 

有什麼在System.IO做這類合併,還是他必須寫自己的方法?我找不到任何東西。

謝謝!

回答

9
var path1 = "c:\\temp\\foo\\bar"; 
var path2 = "..\\..\\foo2\\file.txt"; 

var path3 = Path.GetFullPath(Path.Combine(path1, path2)).Normalize(); 
+0

打我吧:)是的正常化()只是爲了確保該字符串容易供以後分析(即不包含未歸一反斜槓,一個正則表達式可能錯過),或是否有任何其他功能? –

+0

謝謝,這正是我想他必須要做的。我只是將它包裝在一個實用方法中。 –

+0

'Normalize()'用於unicode字符串,它有助於確保它們可以進行比較。實際上,我習慣使用它,'Path.GetFullPath'在這裏完成這項工作。 – ken2k

4

這應該做到這一點;

var path3 = Path.GetFullPath(Path.Combine(path1, path2)); 
相關問題