这就是问题所在。经过一些连接后,我可能碰巧有一个这样的字符串
"C:/shared_resources/samples\\import_packages\\catalog.zip"
甚至这个
"C:/shared_resources/samples/subfolder/..\\import_packages\\catalog.zip"
我想要一些代码将此类字符串转换为具有统一分隔符的路径。
想到的第一个解决方案是使用new File(srcPath).getCanonicalPath()
,但这是棘手的部分。此方法依赖于调用测试的系统。但是我需要将字符串传递给远程机器(Selenium Grid 节点,那里有浏览器),这里和那里的系统分别是 Linux 和 Windows。因此,尝试这样做会new File("C:/shared_resources/samples\\import_packages\\catalog.zip").getCanonicalPath()
导致类似"/home/username/ourproject/C:/shared_resources/samples/import_packages/catalog.zip"
. 并且使用钝的正则表达式替换似乎也不是一个很好的解决方案。
有没有办法只是修剪路径并使分隔符统一(并可能解析..
's)而不试图隐含地绝对化它?