Path.getFileName în Java

getFileName dă ultimul nume din cale (fișierul), iar getParent calea fără ultimul nume (folderul care îl conține).

Sintaxă
Path getFileName()
Path getParent()

Ce face Path.getFileName

getFileName() returnează ultimul element al căii, ca Path: pentru poze/2026/mare.jpg dă mare.jpg. Pentru operații de text (extensie, prefix), adaugă .toString().

getParent() returnează calea fără ultimul element: poze/2026. Pentru o cale cu un singur nume (note.txt) dă null, deci verifică rezultatul înainte să-l folosești. Ca toate metodele Path, ele lucrează doar cu textul căii, fără să verifice discul.

Ce returnează

Un Path sau null (dacă nu există nume, respectiv părinte).

Exemple

Exemplul 1: Nume, folder și extensie

import java.nio.file.Path;

public class Main {
    public static void main(String[] args) {
        Path poza = Path.of("poze", "2026", "Vama Veche.jpg");

        String nume = poza.getFileName().toString();
        int punct = nume.lastIndexOf('.');
        System.out.println("Fișier: " + nume);
        System.out.println("Fără extensie: " + nume.substring(0, punct));
        System.out.println("Extensie: " + nume.substring(punct + 1));
        System.out.println("Folder: " + poza.getParent());
        System.out.println("Bunicul: " + poza.getParent().getParent());
    }
}

Rezultat

Fișier: Vama Veche.jpg
Fără extensie: Vama Veche
Extensie: jpg
Folder: poze/2026
Bunicul: poze

Exemplul 2: getParent poate da null

O cale cu un singur nume nu are părinte în text, deși fișierul se află, de fapt, în folderul curent.

import java.nio.file.Path;

public class Main {
    public static void main(String[] args) {
        Path simplu = Path.of("note.txt");
        System.out.println("Părinte: " + simplu.getParent());
        System.out.println("Părinte absolut există: " + (simplu.toAbsolutePath().getParent() != null));
        System.out.println("Nume pentru /: " + Path.of("/").getFileName());
    }
}

Rezultat

Părinte: null
Părinte absolut există: true
Nume pentru /: null

Greșeli frecvente

  • Apelezi getParent().resolve(...) pe o cale fără părinte: NullPointerException. Folosește toAbsolutePath() înainte sau verifică null.
  • Compari getFileName() cu un String prin equals: un Path nu este egal cu un String. Adaugă .toString().

Comenzi înrudite

  • Path: Reprezintă calea unui fișier sau folder (ex. date/note.txt); nu verifică dacă fișierul există. toString o dă ca text.
  • Path.resolve: Adaugă o cale la sfârșitul altei căi: folder.resolve(„note.txt”) dă folder/note.txt.
  • Path.toAbsolutePath: Transformă o cale relativă în cale absolută, adăugând în față folderul curent al programului.
  • File: Clasa veche pentru căi de fișiere: exists verifică existența, getName dă numele, length mărimea în octeți.