是否有人知道我可以用来生成规范路径的任何Java库(基本上删除反向引用)。生成规范路径
我需要的东西,将做到以下几点:
原始路径 - >规范路径
/../foo/ -> /foo
/foo/ -> /foo
/../../../ ->/
/./foo/./ -> /foo
//foo//bar -> /foo/bar
//foo/../bar -> /bar
等等
此刻我懒洋洋地依赖于使用:
new File("/", path).getCanonicalPath();
但是这解决了这个问题h针对实际的文件系统,并且是同步的。
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)
,我canonicalising没有我的文件系统中的路径,方法的所以只是逻辑将尽我的罚款,因此不需要任何同步。我希望有一个经过良好测试的图书馆,而不是自己写。
支持的输入是相对路径吗?或者这是一个错误条件? – 2010-04-21 14:16:37
'/ foo /../ bar /'应该输出什么? – 2010-04-21 14:17:07
@Joachim:我假设所有的路径都是基于根。在大多数情况下,我只是删除从URL中的路径引用。 – Joel 2010-04-21 14:17:19