Ce face File.listFiles
folder.listFiles() dă un File[] cu elementele aflate direct în folder (fără subfoldere în adâncime). Varianta cu filtru păstrează doar elementele dorite: listFiles(File::isFile) sau listFiles(f -> f.getName().endsWith(".txt")). list() dă doar numele, ca String[].
Dacă obiectul nu este un folder sau apare o eroare de citire, metoda returnează null, nu un tablou gol. Ordinea elementelor nu este garantată, deci sortează-le înainte de afișare.
Parametri
| Parametru | Descriere |
|---|---|
filtru |
Opțional: condiția pe care trebuie s-o îndeplinească fiecare element. |
Ce returnează
Un File[] sau null.
Exemple
Exemplul 1: Conținutul unui folder, sortat
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
File muzica = new File("muzica");
muzica.mkdir();
for (String nume : new String[]{"hora.mp3", "doina.mp3", "coperta.jpg"}) {
Files.writeString(new File(muzica, nume).toPath(), "...");
}
new File(muzica, "albume").mkdir();
File[] toate = muzica.listFiles();
Arrays.sort(toate);
for (File f : toate) {
System.out.println((f.isDirectory() ? "[D] " : " ") + f.getName());
}
File[] mp3 = muzica.listFiles(f -> f.getName().endsWith(".mp3"));
System.out.println("Melodii: " + mp3.length);
}
}
Rezultat
[D] albume
coperta.jpg
doina.mp3
hora.mp3
Melodii: 2
Exemplul 2: null pentru ceva care nu e folder
Pentru un fișier sau o cale inexistentă, listFiles dă null; verificăm înainte de a-l parcurge.
import java.io.File;
public class Main {
static void listeaza(File f) {
File[] continut = f.listFiles();
if (continut == null) {
System.out.println(f + ": nu este un folder care poate fi citit");
return;
}
System.out.println(f + ": " + continut.length + " elemente");
}
public static void main(String[] args) {
new File("gol").mkdir();
listeaza(new File("gol"));
listeaza(new File("nu-exista"));
}
}
Rezultat
gol: 0 elemente
nu-exista: nu este un folder care poate fi citit
Greșeli frecvente
- Parcurgi direct rezultatul:
for (File f : folder.listFiles())dăNullPointerExceptiondacă folderul lipsește. - Afișezi fără sortare și te bazezi pe ordine. Folosește
Arrays.sort.
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.list: Returnează conținutul direct al unui folder (fișiere și subfoldere, fără să intre în ele), ca Stream<Path>.Files.walk: Parcurge un folder cu tot ce conține, la orice adâncime, și dă toate căile ca Stream<Path>, începând cu folderul însuși.File.mkdir: mkdir creează un folder, mkdirs și folderele părinte, delete șterge un fișier sau un folder gol; toate returnează true/false.