Path Class

Path Class

Introducida en Java SE 7.

▸ Representa una ruta en el sistema de ficheros.

▸ Contiene el nombre de fichero y la lista de directorios usada para construir la ruta.

▸ Permite manejar diferentes sistemas de ficheros (Windows, Linux, Mac, …

OPERACIONES CON PATH

▸ Crear un Path

▸ Obtener información de un Path

▸ Eliminar redundancias

▸ Unir dos Paths

▸ Comparar dos paths

La creación de un Path hará casi siempre uso de los diferentes métodos estáticos de Paths

Crear Paths:

Path p1 = Paths.get("java", "temario.txt");
// C:\Users\peter\Desktop\Repos\atlasjava\java\temario.txt

Path p2 = FileSystems.getDefault().getPath("java", "temario.txt");
// C:\Users\peter\Desktop\Repos\atlasjava\java\temario.txt

Path p3 = Paths.get(System.getProperty("user.home"), "documents", "java", "temario.txt");
// C:\Users\peter\documents\java\temario.txt

Path p4 = FileSystems.getDefault().getPath("");
// C:\Users\peter\Desktop\Repos\atlasjava

System.out.println(p1.toAbsolutePath());
System.out.println(p2.toAbsolutePath());
System.out.println(p3.toAbsolutePath());
System.out.println(p4.toAbsolutePath());

Datos de Path:

Path path = Paths.get(System.getProperty("user.home"), "documents", "java", "temario.txt");

System.out.format("toString: %s%n", path);
// toString: C:\Users\peter\documents\java\temario.txt

System.out.format("getFileName: %s%n", path.getFileName());
// getFileName: temario.txt

System.out.format("getName(0): %s%n", path.getName(0));
// getName(0): Users

System.out.format("getNameCount: %d%n", path.getNameCount());
// getNameCount: 5

System.out.format("subpath(0,2): %s%n", path.subpath(0, 2));
// subpath(0,2): Users\peter

System.out.format("getParent: %s%n", path.getParent());
// getParent: C:\Users\peter\documents\java

System.out.format("getRoot: %s%n", path.getRoot());
// getRoot: C:\

Normalización con Paths:

Path path = Paths.get(System.getProperty("user.home"), "documents", "java", "..", "..", "temario.txt");
System.out.println(path); // C:\Users\peter\documents\java\..\..\temario.txt

Path normalized = path.normalize();
System.out.println(normalized); //C:\Users\peter\temario.txt

Unir dos Path:

Path basePath = Paths.get(System.getProperty("user.home"), "documents", "java");
Path file = Paths.get("temario.txt");
Path complete = basePath.resolve(file);
System.out.println(complete);
// C:\Users\peter\documents\java\temario.txt

Comparar Paths:

Path p1 = Paths.get(System.getProperty("user.home"), "documents", "java", "..", "..", "documents", "java",
                "temario.txt");

Path p2 = Paths.get(System.getProperty("user.home"), "documents", "java", "temario.txt");

if (p1.equals(p2))
    System.out.println("Son iguales");
else
    System.out.println("No son iguales");

if (p1.normalize().equals(p2))
    System.out.println("Ahora si son iguales");