ローカルファイルパスを通常のパス形式に変換する方法です。
サンプル
例)ローカルファイルパスを通常のパス形式に変換する
// ローカルファイルパスURI
string localPath = "file:///C:/work/test.txt";
// URIオブジェクト生成
Uri uri = new Uri(localPath);
// 通常のパス形式に変換
string path = uri.LocalPath + Uri.UnescapeDataString(uri.Fragment);
結果
path → "C:\work\test.txt"
備考
- Uri.UnescapeDataString(uri.Fragment) は、ローカルファイルパスに「#」が含まれている場合の対応です。
(ローカルファイパスに#が含まれると#以前までしか出力されませんが、Uri.UnescapeDataStringで対応できます。) - ローカルファイルパスの形式が間違っている場合は、System.UriFormatExceptionが発生します。