https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html#toRealPath-java.nio.file.LinkOption...-
Chemin toRealPath (... LinkOption options) throws IOException Renvoie le chemin réel d'un fichier existant. La définition précise de cette méthode est dépendante de l'implémentation mais en général elle dérive de ce chemin, un chemin absolu qui localise le même fichier que ce chemin, mais avec des éléments de nom qui représentent le nom réel des répertoires et du fichier . Par exemple, lorsque les comparaisons de nom de fichier sur un système de fichiers sont insensibles à la casse, les éléments de nom représentent les noms dans leur cas réel. En outre, le chemin résultant a des éléments de nom redondants supprimés.
Si ce chemin est relatif, alors son chemin absolu est d'abord obtenu, comme si en invoquant la méthode toAbsolutePath.
Le tableau d'options peut être utilisé pour indiquer comment les liens symboliques sont traités. Par défaut, les liens symboliques sont résolus à leur cible finale . Si l'option NOFOLLOW_LINKS est présente, alors cette méthode ne résout pas les liens symboliques . Certaines implémentations autorisent des noms spéciaux tels que ".." pour faire référence au répertoire parent. Lors de la dérivation du vrai chemin , et un ".." (ou équivalent) est précédé d'un nom non ".." alors une implémentation entraînera généralement la suppression des deux noms. Lorsque ne résout pas les liens symboliques et que le nom précédent est un lien symbolique , les noms ne sont supprimés que s'ils garantissent que le chemin obtenu localisera le même fichier que ce chemin.
Paramètres: Options - indiquant la façon dont les liens symboliques sont traités Retourne un chemin absolu représentent le chemin réel du fichier situé par cet objet Jetés: IOException - si le fichier ne existe ou une erreur d'E/S securityException - Dans le cas du fournisseur par défaut , et qu'un gestionnaire de sécurité est installé, sa méthode checkRead est invoquée pour vérifier l'accès en lecture au fichier, et où ce chemin n'est pas absolu, sa méthode checkPropertyAccess est invoquée pour accès à la propriété système user.dir
Utilisez la méthode toRealPath() de nio. Le NO_FOLLOW_LINKS LinkOption fait le contraire de ce que vous essayez de faire, alors ne l'utilisez pas.
Path realPath = aFile.toPath().toRealPath()
Path realPath = aPath().toRealPath()
Un Gotcha avec cela, est que, contrairement à toAbsolutePath
, toRealPath
jette un IOException
car il a fait d'interagir avec le système de fichiers pour trouver le vrai chemin.
De grands détails et un lien vers l'API, note supplémentaire que l'exception SecurityException peut également être levée. C'était exactement l'information dont j'avais besoin. Merci pour votre aide @Novaterata – Elijah
Droit, mais IOException est vérifiée donc vous devrez soit modifier votre interface ou utiliser un try/catch – Novaterata