Maison >Java >javaDidacticiel >Voici quelques options de titres, jouant sur le format du « défi » et des questions : * Comment détecter de manière fiable les liens symboliques en Java 1.6 ? * Est-ce un lien symbolique ? Une méthode fiable pour Java 1.6 Direct
Détermination des liens symboliques en Java 1.6
Dans le contexte d'une classe DirectoryWalker fonctionnant sur les systèmes UNIX, déterminer si une instance de fichier est une instance symbolique créer un lien vers un répertoire peut être difficile. Bien que la condition fournie :
if (file.getAbsolutePath().equals(file.getCanonicalPath()))
peut servir d'indicateur, elle peut ne pas être entièrement fiable.
Approche alternative
Une approche plus fiable technique, employée dans Apache Commons, consiste à comparer le chemin canonique du répertoire parent avec le chemin canonique du fichier lui-même :
public static boolean isSymlink(File file) throws IOException { if (file.getParent() == null) { canon = file; } else { File canonDir = file.getParentFile().getCanonicalFile(); canon = new File(canonDir, file.getName()); } return !canon.getCanonicalFile().equals(canon.getAbsoluteFile()); }
Ici, la non-concordance entre les chemins canoniques et absolus indique la présence d'un symbole lien. Cependant, il est important de noter que cet algorithme repose sur les hypothèses suivantes :
Si ces hypothèses ne se vérifient pas, l'algorithme peut ne pas déterminer avec précision la présence d'un lien symbolique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!