Ce face Files.createDirectory
Files.createDirectory(cale) creează exact un folder. Aruncă FileAlreadyExistsException dacă folderul există deja și NoSuchFileException dacă folderul părinte lipsește.
Files.createDirectories(cale) creează tot drumul: pentru arhiva/2026/octombrie face toate cele trei foldere, dacă lipsesc. Dacă folderul există deja, nu face nimic și nu dă eroare. De aceea este varianta folosită cel mai des înainte de a scrie fișiere.
Parametri
| Parametru | Descriere |
|---|---|
cale |
Folderul de creat. |
atribute |
Opțional: drepturi de acces (de exemplu permisiuni POSIX). |
Ce returnează
Calea folderului creat.
Exemple
Exemplul 1: createDirectory: un singur nivel
import java.io.IOException;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) throws IOException {
Files.createDirectory(Path.of("poze"));
System.out.println("Am creat folderul poze");
try {
Files.createDirectory(Path.of("poze"));
} catch (FileAlreadyExistsException e) {
System.out.println("Există deja: " + e.getMessage());
}
try {
Files.createDirectory(Path.of("arhiva", "2026"));
} catch (NoSuchFileException e) {
System.out.println("Lipsește părintele pentru: " + e.getMessage());
}
}
}
Rezultat
Am creat folderul poze
Există deja: poze
Lipsește părintele pentru: arhiva/2026
Exemplul 2: createDirectories: tot drumul, de câte ori vrei
A doua apelare nu dă eroare. Apoi putem scrie direct fișierul în folderul cel mai adânc.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) throws IOException {
Path folder = Path.of("arhiva", "2026", "octombrie");
Files.createDirectories(folder);
Files.createDirectories(folder);
Path raport = folder.resolve("raport.txt");
Files.writeString(raport, "Vânzări: 12.500 lei");
System.out.println(raport + " -> " + Files.readString(raport));
System.out.println("arhiva/2026 este folder: " + Files.isDirectory(Path.of("arhiva", "2026")));
}
}
Rezultat
arhiva/2026/octombrie/raport.txt -> Vânzări: 12.500 lei
arhiva/2026 este folder: true
Greșeli frecvente
- Folosești
createDirectorypentru o cale cu mai multe niveluri noi:NoSuchFileException. FoloseștecreateDirectories. - Calea există deja ca fișier: chiar și
createDirectoriesaruncăFileAlreadyExistsException.
Comenzi înrudite
Files.delete: Șterge un fișier sau un folder gol; delete aruncă excepție dacă lipsește, deleteIfExists doar returnează false.Files.isDirectory: isDirectory spune dacă la cale este un folder, iar isRegularFile dacă este un fișier obișnuit.File.mkdir: mkdir creează un folder, mkdirs și folderele părinte, delete șterge un fișier sau un folder gol; toate returnează true/false.Path.resolve: Adaugă o cale la sfârșitul altei căi: folder.resolve(„note.txt”) dă folder/note.txt.