[食譜好菜] 檔案及資料夾的路徑不用自己兜,讓 System.IO.Path 靜態類別來做會方便許多。

  • 11968
  • 0
  • C#
  • 2018-09-10

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

這是一個 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() 產生一個零位元組的暫存檔案

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

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學