Подтвердить что ты не робот

Буква диска из пути файла типа URI в С#

Каков самый простой способ получить букву диска из пути файла типа URI, например

file:///D:/Directory/File.txt

Я знаю, что могу (путь здесь - строка, содержащая текст выше)

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

но он чувствует себя немного неуклюжим. Есть ли способ сделать это, не используя String.Replace или подобное?

4b9b3361

Ответ 1

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

Ответ 2

Это можно сделать, используя следующий код:

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