来自C#中URI类型文件路径的驱动器号

时间:2012-10-02 07:01:59

标签: c# filepath

从URI类型文件路径(例如

)获取驱动器号的最简单方法是什么
file:///D:/Directory/File.txt

我知道我可以做(这里的路径是包含上述文字的字符串)

path = path.Replace(@"file:///", String.Empty);
path = System.IO.Path.GetPathRoot(path);

但感觉有点笨拙。有没有办法在不使用String.Replace或类似的情况下执行此操作?

2 个答案:

答案 0 :(得分:15)

var uri = new Uri("file:///D:/Directory/File.txt");
if (uri.IsFile)
{
    DriveInfo di = new DriveInfo(uri.LocalPath);
    var driveName = di.Name; // Result: D:\\
}

答案 1 :(得分:2)

可以使用以下代码完成:

    string path = "file:///D:/Directory/File.txt";
    if(Uri.IsWellFormedUriString(path, UriKind.RelativeOrAbsolute)) {
        Uri uri = new Uri(path);
        string actualPath = uri.AbsolutePath;
    }