J’ai joué avec java.nio.file.Files
et suis tombé sur un problème étrange. J’ai un lien symbolique, mais Files.isSymbolicLink()
et l’atsortingbut de lien symbolique de Files.readAtsortingbutes()
affichent des résultats différents.
Voici comment je crée le lien:
D:\DEV\test>mklink /D link1 components symbolic link created for link1 <> components
Code Java pertinent:
Path symLinkDirectory = Paths.get("D:\\DEV\\test\\link1"); DosFileAtsortingbutes dosFileAtsortingbutes = Files.readAtsortingbutes(symLinkDirectory, DosFileAtsortingbutes.class); System.out.println(Ssortingng.format( "Files.isSymbolicLink(): %b, dosFileAtsortingbutes.isSymbolicLink(): %b", Files.isSymbolicLink(symLinkDirectory), dosFileAtsortingbutes.isSymbolicLink()));
Me donne cette sortie:
Files.isSymbolicLink (): true, dosFileAtsortingbutes.isSymbolicLink (): false
Quelqu’un pourrait-il me dire pourquoi les atsortingbuts indiquent que le fichier n’est pas un lien symbolique? Est-ce que je manque quelque chose? Est-ce que cela se passe aussi sur Unix?
Vous devez append LinkOption.NOFOLLOW_LINKS
à l’appel de readAtsortingbutes pour obtenir les atsortingbuts du lien lui-même au lieu de la cible du lien.
DosFileAtsortingbutes dosFileAtsortingbutes = Files.readAtsortingbutes(symLinkDirectory, DosFileAtsortingbutes.class, LinkOption.NOFOLLOW_LINKS);