Наши клиенты хранят в своем реестре строку, которая является исполняемой командой. Строка может иметь или не иметь кавычки вокруг целевого пути, и может иметь или не иметь параметры. Например:
"C: \ path \ file.exe" param1 = значение1 param2 = значение2
C: \ path \ file.exe param1 = значение1 param2 = значение2
"C: \ путь \ file.exe"
C: \ путь \ file.exe
«C: \ путь \ файл с пробелами» param1 = значение1 param2 = значение2
"C: \ путь \ файл с пробелами.exe"
Мне нужно получить каталог с целевым путем, т.е. C:\path
.
- Я пытался
Path.GetDirectoryName
, но это не с «Недопустимые символы в пути».
- Я также пытался создать объект
ProcessStartInfo
, но, похоже, у него нет смысла разбирать строку.
- Я возился с
Uri
, но мне тоже не повезло.
У меня есть решение, использующее регулярное выражение (которое я опубликую ниже в качестве ответа), но это выглядит как "должен быть встроен в .Net-helper-class-for-this" "проблема.
Есть класс, который я пропускаю, или просто не правильно использую классы выше?