Какой самый сжатый (но безопасный) способ удалить имя диска, сетевой путь и т.д. из абсолютного пути в С#?
Например, преобразование
\\networkmachine\foo\bar
или
C:\foo\bar
до \foo\bar
.
Кажется, есть много вопросов, которые уже были затронуты в вопросах пути, но я не мог найти то, что искал. Моя первая мысль, которая пришла на ум, заключалась в том, чтобы использовать Path.GetFullPath(), чтобы убедиться, что я действительно работаю с абсолютным путем, а затем просто использую регулярное выражение, чтобы найти первую косую черту, которая не рядом с другой. Однако использование регулярного выражения для манипуляции с путями кажется немного опасным.
Возможно, было бы разумнее получить буквенную/целевую сетевую машину /etc, преобразовать строки в Uri и запросить путь относительно диска/машины, а затем преобразовать обратно в строки? Или есть еще лучший подход?
Спасибо за ваше время!