Maison > Java > javaDidacticiel > le corps du texte

Comment déterminer avec précision les liens symboliques en Java 1.6 ?

DDD
Libérer: 2024-10-28 05:47:01
original
968 Les gens l'ont consulté

How to Accurately Determine Symbolic Links in Java 1.6?

Détermination des liens symboliques dans Java 1.6

Dans le but de parcourir efficacement les répertoires dans un environnement Java 1.6, il devient impératif de faire la différence entre les répertoires et liens symboliques vers des répertoires. Si un objet File représente un répertoire, la condition suivante peut-elle déterminer avec précision s'il s'agit d'un lien symbolique ?

if (file.getAbsolutePath().equals(file.getCanonicalPath())) {
    // Real directory
} else {
    // Possible symbolic link
}
Copier après la connexion

Réponse :

Bien que cette technique puisse indiquer un lien symbolique, il ne peut apporter une garantie définitive. Une inadéquation entre le chemin absolu et le chemin canonique pourrait simplement mettre en évidence la nécessité d'un traitement spécial, plutôt que de confirmer de manière concluante un lien symbolique.

Approche alternative :

Propositions Apache Commons une solution plus fiable. Il détermine si un fichier est un lien symbolique en comparant le chemin canonique de son répertoire parent avec son propre chemin canonique :

<code class="java">public static boolean isSymlink(File file) throws IOException {
    File canon;
    if (file.getParent() == null) {
        canon = file;
    } else {
        File canonDir = file.getParentFile().getCanonicalFile();
        canon = new File(canonDir, file.getName());
    }
    return !canon.getCanonicalFile().equals(canon.getAbsoluteFile());
}</code>
Copier après la connexion

Cette méthode raffinée fournit un moyen plus précis d'identifier les liens symboliques en comparant le chemin canonique du fichier avec celui de son répertoire parent.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal