Кто-нибудь знает какие-либо библиотеки 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)
Пути, которые я canonicalising не существует в моей файловой системе, так что логика метода будет делать меня хорошо, поэтому не требуется никакой синхронизации. Я надеюсь на хорошо протестированную библиотеку, вместо того, чтобы писать самостоятельно.