2012-01-24 33 views
1

我有什麼:實際發生的背後Path.Combine

string Combine = Path.Combine("shree\\", "file1.txt"); 
string Combine1 = Path.Combine("shree", "file1.txt"); 

兩者給出相同的結果:

shree\file1.txt

真正發生什麼背後Path.Combine這是最好的編碼實踐做到這一點?請清除我的視野。謝謝。

回答

5

如果第一個路徑(shree或shree \\)沒有以有效的分隔符結尾(例如DirectorySeparatorChar),它將被附加到串聯之前的路徑中。

所以

string path1 = "shree"; 
string path2 = "file1.txt"; 
string combined = Path.Combine(path1, path2); 

將導致 「SHREE \ FILE1.TXT」,而

string path1 = "shree\\"; 

已包含一個有效的分隔符,所以結合方法不會再添一個。

這裏在字符串變量(path1)中鍵入了兩個斜線。第一個只是作爲第二個轉義字符。這與使用逐字字符串文字相同。上Combine方法

string path1 = @"shree\"; 

的更多信息可以在MSDN上找到:

http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

0

使用第二個。這種方式你不關心什麼是目錄分隔符。

0

Path.Combine背後究竟發生了什麼?

它爲您建立了一條路徑......所以,您將使用哪兩條並不重要。但那些\\是多餘的。
如果您對微觀優化感興趣,可以創建一個測試,其中哪個更快。