Path.Combine (合并兩個路徑字串)方法的一些使用細節

來源:互聯網
上載者:User

標籤:class   blog   com   使用   檔案   string   

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

我們在合并一些目錄的時候,它的兩個參數有些特殊限制,下面我們就來依次看這些特殊限制

1、如果其中一個參數為 null ,會拋出異常: An unhandled exception of type ‘System.ArgumentNullException‘ occurred in mscorlib.dll Additional information: Value cannot be null.

2、如果指定的路徑之一是零長度字串,則該方法返回其他路徑。當然,兩個都是零長度字串,則返回的就是 string.Empty ;

3、如果 path2 包含絕對路徑,則該方法返回 path2。 比如:string tmp = Path.Combine(@"C:\11", @"D:\aa.txt"); tmp 就等於 @"D:\aa.txt"

4、 path2 不能以 \ 和 / 開頭的字串, 如果是這個字串開頭的,則返回 path2 。 比如以下代碼: string p1 = "C:\\aa\\"; string p2 = "C:\\aa";

string p12 = "\\p12"; string p13 = "\\p13\\"; string p15 = "/p13/";

Console.WriteLine(Path.Combine(p1, p12)); Console.WriteLine(Path.Combine(p1, p13)); Console.WriteLine(Path.Combine(p1, p15)); Console.WriteLine(Path.Combine(p2, p12)); Console.WriteLine(Path.Combine(p2, p13)); Console.WriteLine(Path.Combine(p2, p15)); 依次顯示的是: \p12 \p13\ /p13/ \p12 \p13\ /p13/

該函數工作原理

如果 path1 不是一個磁碟機引用(即不是"C:"或"D:")而且不是以 DirectorySeparatorChar、AltDirectorySeparatorChar 或 VolumeSeparatorChar 中定義的有效分隔字元結束,則在串聯前將 DirectorySeparatorChar 追加到 path1 中。

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

由於有空白時不進行參數分析,如果 path2 為" c:\\ ",則將其追加到 path1,而不是僅返回 path2。

不是目錄和檔案名稱的所有無效字元都被 Combine 方法解釋為不可接受的,因為您可以將這些字元用於搜尋萬用字元。例如,儘管 Path.Combine("c:\\", "*.txt") 可能是無效的(如果您要根據它建立一個檔案),但它作為搜尋字串是有效。因此 Combine 方法成功解釋它。

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

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.