2010-03-22 26 views

Respuesta

28

File.getCanonicalPath() resuelve enlaces simbólicos

Una ruta canónica es absoluta y única. La definición precisa de la forma canónica depende del sistema. Este método primero convierte este nombre de ruta a forma absoluta si es necesario, como si invoca el método getAbsolutePath() y luego lo mapea a su forma única de una manera dependiente del sistema. Esto generalmente implica eliminar nombres redundantes como "." y ".." desde la ruta, resolviendo enlaces simbólicos (en plataformas UNIX) y convirtiendo letras de unidad en un caso estándar (en plataformas Microsoft Windows).

supongo que se puede comparar el resultado de getCanonicalPath() y getAbsolutePath().

Actualización: Al parecer, esta pregunta ya ha sido pedido - pagar the answers there

+1

Suena como que podría funcionar - Me pregunto qué tan caro es llamar a un objeto real del sistema de archivos (supongo que es necesario verificar cada directorio en el árbol, donde lo único que me importa es el último) ... –

+1

Gracias - Usar el IO de los comunes de Apache como se indica en http://stackoverflow.com/questions/813710/java-1-6-determine-symbolic-links/813730#813730 parece una buena solución. –

Cuestiones relacionadas