Удаление диска (или сетевого имени) из пути в C #

Какой самый краткий (но безопасный) способ удалить имя диска, сетевой путь и т. Д.из абсолютного пути в C #?

Например, преобразование

\\networkmachine\foo\bar

или

C:\foo\bar

в \ foo \ bar .

Кажется, уже есть ответы на большое количество вопросов относительно путей, но я не мог найти то, что искал. Моя первая мысль, которая пришла мне в голову, заключалась в том, чтобы использовать Path.GetFullPath (), чтобы убедиться, что я действительно работаю с абсолютным путем, а затем просто использовать регулярное выражение, чтобы найти первую косую черту, которая не находится рядом с другой. Однако использование регулярного выражения для управления путями кажется немного опасным.

Может быть, было бы разумнее получить букву диска / целевой сетевой компьютер и т. Д., Преобразовать строки в Uri и запросить путь относительно диска / машины, а затем преобразовать обратно в строки? Или есть еще лучший подход?

23
задан Luke Girvin 12 July 2018 в 10:29
поделиться