Dot-Net

檢查路徑是 UNC 路徑還是本地路徑的正確方法是什麼?

  • February 6, 2009

檢查路徑是否為 UNC 路徑的最簡單方法當然是檢查完整路徑中的第一個字元是字母還是反斜杠。這是一個好的解決方案還是可能有問題?

我的具體問題是,如果路徑中有驅動器號,我想創建一個 System.IO.DriveInfo 對象。

由於根據定義,在第一個和第二個位置沒有兩個反斜杠的路徑不是 UNC 路徑,因此這是一種安全的確定方式。

第一個位置 (c:) 帶有驅動器號的路徑是根本地路徑。

沒有這些東西的路徑 (myfolder\blah) 是相對本地路徑。這包括只有一個斜杠 (\myfolder\blah) 的路徑。

試試這個擴展方法:

public static bool IsUncPath(this string path)
{
   return Uri.TryCreate(path, UriKind.Absolute, out Uri uri) && uri.IsUnc;
}

引用自:https://stackoverflow.com/questions/520753