Path.Combine 的計算結果
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"));
答案是不一樣的,執行的結果分別是:
\20090716\11
/20090716/11
d:\projects\20090716\11
為何會這樣呢??
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.
顯然,除了 除了驅動器開頭的路徑會認為是根, / 或者 \ 開頭的也被認為是根,所以才有上面的計算結果
比如: \\myserver\myshare\foo\bar\baz.txt 這個路徑中, 我們就可以看到 / 確實有必要作為根路徑
在這裡 / 或者 \ 被等同處理,是因為各個作業系統上確實用的不一樣。如下:
Path.DirectorySeparatorChar 欄位
提供平臺特定的字元,該字元用於在反映分層檔案系統組織的路徑字串中分隔目錄級別。
該欄位的值在 Unix 上為斜槓(“/”),在 Windows 和 Macintosh 作業系統上為反斜槓(“\”)。
Path.AltDirectorySeparatorChar 欄位
提供平臺特定的替換字元,該替換字元用於在反映分層檔案系統組織的路徑字串中分隔目錄級別。
該欄位的值在 Unix 上為反斜槓(“\”),在
Windows 和 Macintosh 作業系統上為斜槓(“/”)。
Path.VolumeSeparatorChar 欄位
提供平臺特定的卷分隔符。
該欄位的值在 Windows 和 Macintosh
上為冒號(“:”),在 Unix 作業系統上為斜槓(“/”)。
參考資料:
Path.Combine 方法
http://msdn.microsoft.com/zh-cn/library/fyy7a5kt.aspx
http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx
Path.Combine (合併兩個路徑字串)方法的一些使用細節
http://blog.joycode.com/ghj/archive/2006/08/07/79611.joy
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-616449/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 壽命計算器測試結果
- 模冪運算-要求演算法返回冪運算a^b的計算結果與1337取模後的結果演算法
- 計算DataGrid中的模版列的結果,使用javascript.JavaScript
- 你來寫,“Calca”來快速算出計算結果
- 大資料時代能計算彩票開獎結果?大資料
- 實時計算Flink>獨享模式>Batch(試用)>建立結果表——建立CSV結果表模式BAT
- 大資料時代能計算彩票開獎結果嗎?大資料
- 將算數表示式轉換成字尾表示式並計算結果
- C#將運算字串直接轉換成表示式且計算結果C#字串
- 解析Oracle執行計劃的結果Oracle
- 資訊學競賽中計算結果對 $10^9+7$ 取餘數的原因
- 報表也可以根據單元格計算後結果進行排序排序
- python 實現計算器功能 輸入字串,輸出相應結果Python字串
- java 既然出現double型別×2的n次方的時候計算結果出現偏差Java型別
- 使用Python計算某個數的階乘及列印1!-2!+3!-4!...+50!的結果Python
- 關於c++、go、nodejs、python的計算效能測試,結果令人驚訝C++GoNodeJSPython
- js的特殊結果JS
- 自定義統計結果指令碼mystat指令碼
- 【oracle 】怪異的資訊統計 結果全為0Oracle
- 013、Vue3+TypeScript基礎,computed計算屬性的使用,結果會被快取VueTypeScript快取
- 沒有運算結果,直接執行完所有程式碼
- relink oracle的結果Oracle
- 通用結果類用於返回響應結果
- 計算機的微機結構計算機
- C語言程式設計>第八週 ② 編寫函式fun,函式的功能是:根據以下公式計算,計算結果作為函式值返回。C語言程式設計函式公式
- VNPY 批量策略回測和統計結果的excel輸出Excel
- PHP:案例2--商品價格計算(案例分析+設計思路+知識點講解+原始碼+結果展示)PHP原始碼
- MyBatis 返回結果MyBatis
- 執行結果
- 測試結果
- 結果去重
- JavaScript中Typeof返回的結果JavaScript
- mysql group by 取想要的結果MySql
- AJAX的同步返回結果值
- DUMP函式結果的意思函式
- Shell的命令的結果重定向
- 結算系統設計
- iOS FMDB有返回結果集和無返回結果集iOS