请问有没有Java库可以用来生成规范路径(基本上是删除反向引用)。
我需要的是能够执行以下操作的东西:
原始路径 -> 规范路径
/../foo/ -> /foo
/foo/ -> /foo
/../../../ -> /
/./foo/./ -> /foo
//foo//bar -> /foo/bar
//foo/../bar -> /bar
目前我懒惰地依赖于使用:
new File("/", path).getCanonicalPath();
但是这会根据实际的文件系统解析路径,并保持同步。
java.lang.Thread.State: BLOCKED (on object monitor)
at java.io.ExpiringCache.get(ExpiringCache.java:55)
- waiting to lock <0x93a0d180> (a java.io.ExpiringCache)
at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:137)
at java.io.File.getCanonicalPath(File.java:559)
我需要进行规范路径,但这些路径在我的文件系统上并不存在,因此我只需要该方法的逻辑即可,不需要任何同步。我希望能够使用一个经过充分测试的库,而不是编写自己的代码。
/foo/../bar/
的输出应该是什么? - Joachim Sauer