File.mkdir în Java

mkdir creează un folder, mkdirs și folderele părinte, delete șterge un fișier sau un folder gol; toate returnează true/false.

Sintaxă
boolean mkdir()
boolean mkdirs()
boolean delete()

Ce face File.mkdir

mkdir() creează un singur folder și returnează true dacă a reușit. Dacă folderul există deja sau părintele lipsește, returnează false. mkdirs() creează și folderele părinte lipsă.

delete() șterge un fișier sau un folder gol și returnează true dacă a reușit. Nu aruncă excepție: pentru un fișier inexistent sau un folder cu conținut dă doar false, fără să spună motivul. Files.createDirectory și Files.delete dau mesaje de eroare mai clare.

Ce returnează

true dacă operația a reușit, altfel false.

Exemple

Exemplul 1: Creare și ștergere, cu rezultatele returnate

import java.io.File;

public class Main {
    public static void main(String[] args) {
        File poze = new File("poze");
        System.out.println("mkdir prima dată: " + poze.mkdir());
        System.out.println("mkdir a doua oară: " + poze.mkdir());

        File adanc = new File("arhiva/2026/mai");
        System.out.println("mkdir fără părinți: " + adanc.mkdir());
        System.out.println("mkdirs: " + adanc.mkdirs());

        System.out.println("delete poze: " + poze.delete());
        System.out.println("delete arhiva (nu e goală): " + new File("arhiva").delete());
        System.out.println("delete inexistent: " + new File("nu-exista.txt").delete());
    }
}

Rezultat

mkdir prima dată: true
mkdir a doua oară: false
mkdir fără părinți: false
mkdirs: true
delete poze: true
delete arhiva (nu e goală): false
delete inexistent: false

Exemplul 2: Ștergerea unui folder cu tot conținutul

O metodă recursivă șterge întâi conținutul, apoi folderul însuși.

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class Main {
    static boolean stergeTot(File f) {
        File[] copii = f.listFiles();
        if (copii != null) {
            for (File c : copii) {
                stergeTot(c);
            }
        }
        return f.delete();
    }

    public static void main(String[] args) throws IOException {
        File temp = new File("temp/a/b");
        temp.mkdirs();
        Files.writeString(new File(temp, "x.txt").toPath(), "date");
        Files.writeString(new File("temp", "y.txt").toPath(), "date");

        System.out.println("Șters tot: " + stergeTot(new File("temp")));
        System.out.println("temp există: " + new File("temp").exists());
    }
}

Rezultat

Șters tot: true
temp există: false

Greșeli frecvente

  • Ignori rezultatul lui mkdir() și scrii apoi în folder; dacă n-a fost creat, primești o eroare mai târziu, greu de înțeles.
  • Folosești mkdir() pentru o cale cu mai multe niveluri noi: dă false. Folosește mkdirs().

Comenzi înrudite

  • File: Clasa veche pentru căi de fișiere: exists verifică existența, getName dă numele, length mărimea în octeți.
  • Files.createDirectory: createDirectory creează un singur folder; createDirectories creează și folderele părinte lipsă, fără eroare dacă există.
  • Files.delete: Șterge un fișier sau un folder gol; delete aruncă excepție dacă lipsește, deleteIfExists doar returnează false.
  • File.listFiles: Returnează un tablou cu fișierele și folderele dintr-un folder, sau null dacă nu este folder ori nu poate fi citit.