Path.Combine 使用方法

來源:互聯網
上載者:User
Path.Combine 使用方法

System.IO.Path.Combine 簡單來說,就是合并兩個路徑字串。
比如如下調用,Path.Combine(@"C:11","aa.txt") 返回的字串路徑如後: C:11aa.txt

這個方法的聲明如下:
public static string Combine (  string path1,  string path2 )

樣本 Path.Combine("d:\projects", "\20090716\11")); 的計算結果

下面代碼執行的結果一樣嗎?

Console.WriteLine(Path.Combine("d:\projects", "\20090716\11"));
Console.WriteLine(Path.Combine("d:\projects", "/20090716/11"));
Console.WriteLine(Path.Combine("d:\projects", "20090716\11"));

答案是不一樣的,執行的結果分別是:

2009071611
/20090716/11
d:projects2009071611

為何會這樣呢??

MSDN 中文上的解釋如下,紅色字型是導致這個問題的根本原因:

如果 path2 不包括根(例如,如果 path2 沒有以分隔字元或磁碟機規格起始),則結果是兩個路徑的串聯,具有介於其間的分隔字元。如果 path2 包括根,則返回 path2。

MSDN 英文的解釋如下:

If path2 does not include a root (for example, if path2 does not start with a separator character or a drive specification), the result is a concatenation of the two paths, with an intervening separator character. If path2 includes a root, path2 is returned.

顯然,除了 除了磁碟機開頭的路徑會認為是根, / 或者 開頭的也被認為是根,所以才有上面的計算結果

比如: \myservermysharefoobarbaz.txt  這個路徑中, 我們就可以看到 / 確實有必要作為根路徑

在這裡 / 或者 被等同處理,是因為各個作業系統上確實用的不一樣。如下:

Path.DirectorySeparatorChar 欄位
提供平台特定的字元,該字元用於在反映分層檔案系統組織的路徑字串中分隔目錄層級。
該欄位的值在 Unix 上為斜杠(“/”),在 Windows 和 Macintosh 作業系統上為反斜線(“”)。

Path.AltDirectorySeparatorChar 欄位
提供平台特定的替換字元,該替換字元用於在反映分層檔案系統組織的路徑字串中分隔目錄層級。
該欄位的值在 Unix 上為反斜線(“”),在 Windows 和 Macintosh 作業系統上為斜杠(“/”)。

Path.VolumeSeparatorChar 欄位
提供平台特定的卷分隔字元。
該欄位的值在 Windows 和 Macintosh 上為冒號(“:”),在 Unix 作業系統上為斜杠(“/”)。

參考地址:

http://msdn.microsoft.com/zh-cn/library/fyy7a5kt.aspx

http://blog.joycode.com/ghj/archive/2009/07/27/115665.joy

http://blog.joycode.com/ghj/archive/2006/08/07/79611.joy

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.