Вот проблема. После некоторых конкатенаций у меня может быть строка вроде этого
"C:/shared_resources/samples\\import_packages\\catalog.zip"
или даже это
"C:/shared_resources/samples/subfolder/..\\import_packages\\catalog.zip"
Я хочу иметь некоторый код, который преобразует такую строку в путь с равномерными разделителями.
Первое решение, которое приходит на ум, использует new File(srcPath).getCanonicalPath()
, однако здесь сложная часть. Этот метод зависит от системы, в которой выполняются тесты. Однако мне нужно передать строку на удаленную машину (Selenium Grid node с браузером там), а в системах здесь и там есть Linux и Windows соответственно. Поэтому попытка сделать new File("C:/shared_resources/samples\\import_packages\\catalog.zip").getCanonicalPath()
приводит к чему-то вроде "/home/username/ourproject/C:/shared_resources/samples/import_packages/catalog.zip"
. И использование тупой замены регулярных выражений тоже не очень хорошее решение.
Есть ли способ просто обрезать путь и сделать разделители единообразными (и, возможно, разрешать ..
), не пытаясь его абсолютизировать абсолютизировать?