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