我有什麼:實際發生的背後Path.Combine
string Combine = Path.Combine("shree\\", "file1.txt");
string Combine1 = Path.Combine("shree", "file1.txt");
兩者給出相同的結果:
shree\file1.txt
真正發生什麼背後Path.Combine
這是最好的編碼實踐做到這一點?請清除我的視野。謝謝。
我有什麼:實際發生的背後Path.Combine
string Combine = Path.Combine("shree\\", "file1.txt");
string Combine1 = Path.Combine("shree", "file1.txt");
兩者給出相同的結果:
shree\file1.txt
真正發生什麼背後Path.Combine
這是最好的編碼實踐做到這一點?請清除我的視野。謝謝。
如果第一個路徑(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上找到:
使用第二個。這種方式你不關心什麼是目錄分隔符。
Path.Combine背後究竟發生了什麼?
它爲您建立了一條路徑......所以,您將使用哪兩條並不重要。但那些\\
是多餘的。
如果您對微觀優化感興趣,可以創建一個測試,其中哪個更快。