it-swarm.com.de

Abrufen der Dateinamen aller Dateien in einem Ordner

Mögliches Duplikat:
Alle Dateien in einem Ordner lesen

Ich muss eine Liste mit allen Namen der Dateien in einem Ordner erstellen.

Zum Beispiel, wenn ich habe:

000.jpg
012.jpg
013.jpg

Ich möchte sie in einem ArrayList mit [000,012,013] als Werte speichern.

Wie geht das am besten in Java?

PS: Ich arbeite unter Mac OS X

380
user680406

Du könntest es so machen:

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
  if (listOfFiles[i].isFile()) {
    System.out.println("File " + listOfFiles[i].getName());
  } else if (listOfFiles[i].isDirectory()) {
    System.out.println("Directory " + listOfFiles[i].getName());
  }
}

Möchten Sie nur JPEG-Dateien oder alle Dateien erhalten?

715

Erstellen Sie ein File -Objekt und übergeben Sie den Verzeichnispfad an den Konstruktor. Verwenden Sie listFiles(), um ein Array von File -Objekten für jede Datei im Verzeichnis abzurufen, und rufen Sie dann die getName() -Methode auf, um den Dateinamen abzurufen.

List<String> results = new ArrayList<String>();


File[] files = new File("/path/to/the/directory").listFiles();
//If this pathname does not denote a directory, then listFiles() returns null. 

for (File file : files) {
    if (file.isFile()) {
        results.add(file.getName());
    }
}
126
Sean Kleinjung

So sehen Sie in der Dokumentation aus.

Zuerst haben Sie es mit IO zu tun, schauen Sie sich also das Java.ioPaket an.

Es gibt zwei Klassen, die interessant aussehen: FileFilter und FileNameFilter . Als ich das erste anklickte, zeigte es mir, dass es eine listFiles() -Methode in der File -Klasse gab. Und die Dokumentation für diese Methode lautet:

Gibt ein Array von abstrakten Pfadnamen zurück, die die Dateien in dem durch diesen abstrakten Pfadnamen angegebenen Verzeichnis angeben.

Wenn ich im JavaDoc File nach oben scrolle, sehe ich die Konstruktoren. Und das ist wirklich alles, was ich brauche, um eine File -Instanz zu erstellen und darauf listFiles() aufzurufen. Wenn ich noch weiter scrolle, sehe ich einige Informationen darüber, wie Dateien in verschiedenen Betriebssystemen benannt werden.

64
Anon