Here's the complete HTML translated to Spanish, with `lang="es"`, the ES link active in the switcher, and `[ES]` appended to the title: ```html
CanonicalFileUtils.java.. y ., y normaliza separadores de ruta mediante File.getCanonicalPath(). Maneja errores de E/S de forma elegante recurriendo a getAbsolutePath(). Proporciona sobrecargas basadas en cadenas y en objetos File para la resolución de rutas. Se utiliza en ProjectForge siempre que es necesario comparar rutas de archivo o garantizar una representación de ruta consistente.java.io.File — Abstracción de archivos JDKjava.io.IOException — Excepción verificada de getCanonicalPath()org.slf4j.Logger — Registro de errores para fallos de E/SDevuelve la ruta canónica de un archivo como cadena. Si getCanonicalPath() lanza IOException (por ejemplo, el archivo no existe y el sistema de archivos no puede resolver su forma canónica), recurre a getAbsolutePath() y registra el error.
Misma lógica pero devuelve un objeto File mediante getCanonicalFile() / getAbsoluteFile().
Sobrecarga de conveniencia que envuelve una ruta de cadena en new File(path) y delega en absolute(File).
El método File.getCanonicalPath() de Java proporciona varias garantías que getAbsolutePath() no ofrece:
. (directorio actual) y .. (directorio padre)//Esto es crítico para operaciones sensibles a la seguridad donde las rutas de entrada del usuario deben compararse con rutas permitidas — dos representaciones de cadena diferentes podrían referirse al mismo archivo (por ejemplo, /home/usuario/../usuario/archivo y /home/usuario/archivo).
La clase utiliza un patrón de degradación gradual: si la resolución canónica falla (IOException), recurre a la ruta absoluta y registra el error. Esto es importante porque getCanonicalPath() puede lanzar IOException por razones fuera del control de la aplicación (por ejemplo, permisos del sistema de archivos, problemas de montaje NFS o que el archivo no exista). La alternativa garantiza que la aplicación continúe funcionando, aunque con una ruta potencialmente no normalizada.
Todos los métodos manejan la entrada null de forma elegante — devolviendo null sin lanzar NullPointerException. Esto simplifica el código del llamante al eliminar la necesidad de comprobaciones de nulos antes de llamar a la utilidad.
CanonicalFileUtils se utiliza en escenarios como:
..Error interno al intentar obtener la ruta canónica" es ligeramente engañoso — una IOException de getCanonicalPath() no es necesariamente un "error interno" sino a menudo una condición ambiental (archivo faltante, permiso denegado). La alternativa a getAbsolutePath() acepta silenciosamente una ruta potencialmente no normalizada.FileHelper. Esto sigue el Principio de Responsabilidad Única, manteniendo las utilidades enfocadas y comprobables.868d6abb7 2025 -> 2026 63081666f Encabezados de archivos fuente: 2024 -> 2025. b6092df09 Derechos de autor 2023 -> 2024 ab45d51fa Derechos de autor 2001-2022 -> 2001-2023. 5f7ef41b8 Derechos de autor 2021 -> 2022 ceb63e8a1 Encabezado de código fuente: (C) 2001-2021. 7c79f1922 Derechos de autor del encabezado fuente -> 2020. bd25a85fb WIP: Asistente de configuración (Swing y Lanterna)