Recherche…


Syntaxe

  • Paths.get (String first, String ... plus) // Crée une instance Path par ses éléments String
  • Paths.get (URI URI) // Crée une instance Path par un URI

Créer des chemins

La classe Path est utilisée pour programmer un chemin dans le système de fichiers (et peut donc pointer vers des fichiers aussi bien que des répertoires, même vers des répertoires inexistants)

Un chemin peut être obtenu en utilisant la classe helper Paths :

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt");
Path p4 = Paths.get("/home", "arthur", "files", "diary.tex");

Récupération d'informations sur un chemin

Les informations sur un chemin peuvent être obtenues à l'aide des méthodes d'un objet Path :

  • toString() renvoie la représentation sous forme de chaîne du chemin

    Path p1 = Paths.get("/var/www"); // p1.toString() returns "/var/www"
    
  • getFileName() renvoie le nom du fichier (ou plus précisément le dernier élément du chemin

    Path p1 = Paths.get("/var/www"); // p1.getFileName() returns "www"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getFileName() returns "HHGTDG.odt"
    
  • getNameCount() renvoie le nombre d'éléments formant le chemin

    Path p1 = Paths.get("/var/www"); // p1.getNameCount() returns 2
    
  • getName(int index) renvoie l'élément à l'index donné

    Path p1 = Paths.get("/var/www"); // p1.getName(0) returns "var", p1.getName(1) returns "www"
    
  • getParent() renvoie le chemin du répertoire parent

    Path p1 = Paths.get("/var/www"); // p1.getParent().toString() returns "/var"
    
  • getRoot() renvoie la racine du chemin

    Path p1 = Paths.get("/var/www"); // p1.getRoot().toString() returns "/"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getRoot().toString() returns "C:\\"
    

Manipulation des chemins

Rejoindre deux chemins

Les chemins peuvent être joints en utilisant la méthode resolve() . Le chemin d'accès doit être un chemin partiel, qui ne comprend pas l'élément racine.

Path p5 = Paths.get("/home/");
Path p6 = Paths.get("arthur/files");
Path joined = p5.resolve(p6);
Path otherJoined = p5.resolve("ford/files");
joined.toString() == "/home/arthur/files"
otherJoined.toString() == "/home/ford/files"

Normaliser un chemin

Les chemins peuvent contenir les éléments . (qui pointe vers le répertoire dans lequel vous vous trouvez actuellement) et .. (qui pointe vers le répertoire parent).

Lorsqu'il est utilisé dans un chemin, . peut être supprimé à tout moment sans changer la destination du chemin, et .. peut être supprimé avec l'élément précédent.

Avec l'API Paths, cela se fait en utilisant la méthode .normalize() :

Path p7 = Paths.get("/home/./arthur/../ford/files");
Path p8 = Paths.get("C:\\Users\\.\\..\\Program Files");
p7.normalize().toString() == "/home/ford/files"
p8.normalize().toString() == "C:\\Program Files"

Récupération d'informations à l'aide du système de fichiers

Pour interagir avec le système de fichiers, utilisez les méthodes de la classe Files .

Vérification de l'existence

Pour vérifier l'existence du fichier ou du répertoire indiqué par un chemin d'accès, utilisez les méthodes suivantes:

Files.exists(Path path)

et

Files.notExists(Path path)

!Files.exists(path) ne doit pas nécessairement être égal à Files.notExists(path) , car il existe trois scénarios possibles:

  • Est vérifié l'existence est un fichier ou un répertoire ( exists des rendements true et notExists retourne false dans ce cas)
  • La non-existence d'un fichier ou d'un répertoire est vérifiée ( exists renvoie false et notExists renvoie true )
  • Ni l'existence ni la non-existence d'un fichier ou d'un répertoire ne peuvent être vérifiées (par exemple en raison de restrictions d'accès): Les deux exists et nonExists renvoie false.

Vérifier si un chemin pointe vers un fichier ou un répertoire

Ceci est fait en utilisant Files.isDirectory(Path path) et Files.isRegularFile(Path path)

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get("/home/testuser/File.txt");
Files.isDirectory(p1) == true
Files.isRegularFile(p1) == false

Files.isDirectory(p2) == false
Files.isRegularFile(p2) == true

Obtenir des propriétés

Cela peut être fait en utilisant les méthodes suivantes:

Files.isReadable(Path path)
Files.isWritable(Path path)
Files.isExecutable(Path path)

Files.isHidden(Path path)
Files.isSymbolicLink(Path path)

Obtenir le type MIME

Files.probeContentType(Path path)

Cela tente d'obtenir le type MIME d'un fichier. Il retourne un type MIME String, comme ceci:

  • text/plain pour les fichiers texte
  • text/html pour les pages HTML
  • application/pdf pour les fichiers PDF
  • image/png pour les fichiers PNG

Lecture de fichiers

Les fichiers peuvent être lus en octets et en lignes en utilisant la classe Files .

Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
byte[] content = Files.readAllBytes(p2);
List<String> linesOfContent = Files.readAllLines(p2);

Files.readAllLines() prend éventuellement un jeu de caractères comme paramètre ( StandardCharsets.UTF_8 par défaut):

List<String> linesOfContent = Files.readAllLines(p2, StandardCharsets.ISO_8859_1);

Ecrire des fichiers

Les fichiers peuvent être écrits en mordant et en ligne en utilisant la classe Files

Path p2 = Paths.get("/home/testuser/File.txt");
List<String> lines = Arrays.asList(
    new String[]{"First line", "Second line", "Third line"});

Files.write(p2, lines);
Files.write(Path path, byte[] bytes)

Les fichiers existants seront remplacés, des fichiers non existants seront créés.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow