Я хочу получить каталог из blob абсолютного Uri: https://001.blob.core.windows.net/files/11-files.trg.
Для этого я использую метод Путь.GetDirectoryName. В результате у меня есть: https:\\001.blob.core.windows.net\\files.
Почему появляется двойной разделитель и как его заменить на одинарный?
Я ожидаю https://001.blob.core.windows.net/files
Для извлечения частей URL лучше использовать класс Ури.
Я понял свою ошибку, спасибо. В данном случае этот метод не подходит.
https — это протокол, и он не будет работать с GetDirectoryName. Имя GetDirectlory будет работать только с общей папкой в Сети. Похоже, имя вашей машины 001, поэтому, если путь является общим, файлы можно найти с помощью \\ 001 (не https). Попробуйте с помощью проводника посмотреть, есть ли на машине общие каталоги.
Я думаю, что Path.GetDirectoryName работает только для относительных путей, но не для URL-адресов. Итак, первое, что приходит мне в голову, это что-то вроде этого:
var url = "https://001.blob.core.windows.net/files/11-files.trg";
var temp = new string(url.ToCharArray().Reverse().ToArray());
int index = temp.IndexOf('/');
temp = temp.Substring(index + 1 , temp.Length - index - 1);
var result = new string(temp.ToCharArray().Reverse().ToArray());
Console.WriteLine(result);
//output: https://001.blob.core.windows.net/files
Какую именно строку вы ожидаете? Кроме того, класс
Path
предназначен для обхода путей файловой системы (исторически в Windows с обратной косой чертой), а не URI.