Maison  >  Article  >  Java  >  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

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

DDD
DDDoriginal
2024-10-27 03:30:03407parcourir

Here are a few title options, playing on the

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 :

  • Le répertoire parent du fichier peut être résolu en un chemin canonique.
  • Le système de fichiers prend en charge les liens symboliques .

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!

Déclaration:
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