CanonicalFileUtils.java.. et ., et normalise les séparateurs de chemin via File.getCanonicalPath(). Gère les erreurs d'E/S avec élégance en revenant à getAbsolutePath(). Fournit des surcharges basées sur les chaînes et les objets File pour la résolution de chemins. Utilisé partout où ProjectForge doit comparer des chemins de fichiers ou garantir une représentation cohérente des chemins.java.io.File — Abstraction de fichier JDKjava.io.IOException — Exception vérifiée de getCanonicalPath()org.slf4j.Logger — Journalisation des erreurs pour les échecs d'E/SRetourne le chemin canonique d'un fichier sous forme de chaîne. Si getCanonicalPath() lève une IOException (par exemple, le fichier n'existe pas et le système de fichiers ne peut pas résoudre sa forme canonique), revient à getAbsolutePath() et enregistre l'erreur.
Même logique mais retourne un objet File via getCanonicalFile() / getAbsoluteFile().
Surcharge pratique qui encapsule un chemin chaîne dans new File(path) et délègue à absolute(File).
La méthode File.getCanonicalPath() de Java offre plusieurs garanties que getAbsolutePath() ne fournit pas :
. (répertoire courant) et .. (répertoire parent) sont résolus// est réduitC'est essentiel pour les opérations sensibles à la sécurité où les chemins provenant de l'utilisateur doivent être comparés à des chemins autorisés — deux représentations différentes d'une chaîne peuvent faire référence au même fichier (par exemple, /home/utilisateur/../utilisateur/fichier et /home/utilisateur/fichier).
La classe utilise un modèle de dégradation progressive : si la résolution canonique échoue (IOException), elle revient au chemin absolu et enregistre l'erreur. Ceci est important car getCanonicalPath() peut lever une IOException pour des raisons indépendantes de la volonté de l'application (par exemple, permissions du système de fichiers, problèmes de montage NFS, ou fichier inexistant). La solution de repli garantit que l'application continue de fonctionner, bien qu'avec un chemin potentiellement non normalisé.
Toutes les méthodes gèrent les entrées null avec élégance — retournant null sans lever de NullPointerException. Cela simplifie le code appelant en éliminant le besoin de vérifications null avant d'appeler l'utilitaire.
CanonicalFileUtils est utilisé dans des scénarios tels que :
..Erreur interne lors de la tentative d'obtention du chemin canonique" est légèrement trompeur — une IOException de getCanonicalPath() n'est pas nécessairement une "erreur interne" mais souvent une condition environnementale (fichier manquant, permission refusée). Le repli vers getAbsolutePath() accepte silencieusement un chemin potentiellement non normalisé.FileHelper. Cela suit le principe de responsabilité unique, en gardant les utilitaires ciblés et testables.868d6abb7 2025 -> 2026 63081666f En-têtes des fichiers source : 2024 -> 2025. b6092df09 Droits d'auteur 2023 -> 2024 ab45d51fa Droits d'auteur 2001-2022 -> 2001-2023. 5f7ef41b8 Droits d'auteur 2021 -> 2022 ceb63e8a1 En-tête du code source : (C) 2001-2021. 7c79f1922 Droits d'auteur de l'en-tête source -> 2020. bd25a85fb WIP : Assistant d'installation (Swing et Lanterna)