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ștemkdirs().
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.