前幾天處理了一個檔案沒更新的問題,請看下圖:

這是一個 UNC 路徑,可以看到它路徑中間有兩個 \,然後它就爆了。
會造成這樣的原因是因為在原始程式碼中,在兜路徑的時候沒有處理尾綴的 \ 的數量,而使得尾綴的 \ 多了或少了,路徑就失效了。

用 Path.Combine() 來合併路徑
System.IO.Path 提供了一個 Combine() 方法方便我們來合併路徑,我們完全不用擔心尾綴是否有無 \。

但是 System.IO.Path 不是只有 Combine() 而已,它提供了一系列與檔案(資料夾)路徑相關的 API,底下介紹幾個我個人常用的。
Path.GetDirectoryName() 取得檔案或目錄目前所屬資料夾的完整路徑
Path.GetDirectoryName() 非常方便,論使用頻率的話它應該是最高的,它可以用來取得一個檔案或目錄所屬的資料夾完整路徑,使用方法請參考我之前的文章。
Path.ChangeExtension() 改變副檔名
用這個 Path.ChangeExtension() 來改變副檔名,不用處理 . 的問題。

Path.GetFileName()、Path.GetExtension()、Path.GetFileNameWithoutExtension()
這三個方法是同一群的,依序是取得檔案名稱、取得副檔名、取得不包含副檔名的檔案名稱。

Path.GetPathRoot() 取得根目錄的完整路徑

Path.GetTempPath() 取得當前系統暫存資料夾的完整路徑

Path.GetTempFileName() 產生一個零位元組的暫存檔案
這個方法會產生一個零位元組的暫存檔案,並回傳它的完整路徑。

