459 Stimmen

Abrufen der Dateinamen aller Dateien in einem Ordner

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 con [000,012,013] als Werte.

Wie kann ich das am besten in Java machen?

PS: Ich arbeite mit Mac OS X

836voto

RoflcoptrException Punkte 50975

So könnte man es 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?

160voto

Sean Kleinjung Punkte 3015

Erstellen einer File Objekt und übergibt den Verzeichnispfad an den Konstruktor. Verwenden Sie das listFiles() um ein Array von File Objekte für jede Datei im Verzeichnis, und rufen Sie dann die getName() Methode, um den Dateinamen zu erhalten.

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());
    }
}

72voto

Anon Punkte 2298

So sehen Sie in der Dokumentation .

Zunächst haben Sie es mit IO zu tun, also schauen Sie in der java.io Paket .

Es gibt zwei Klassen, die interessant aussehen: FileFilter y FileNameFilter . Als ich auf das erste klickte, zeigte es mir, dass es ein listFiles() Methode in der Datei Klasse. Und in der Dokumentation zu dieser Methode steht:

Gibt ein Array von abstrakten Pfadnamen zurück zurück, die die Dateien in dem Verzeichnis das durch diesen abstrakten Pfadnamen bezeichnet wird.

Nach oben blättern in der File JavaDoc, ich sehe die Konstruktoren. Und das ist wirklich alles, was ich brauche, um eine File Instanz und rufen listFiles() darauf. Wenn ich noch weiter scrolle, sehe ich einige Informationen darüber, wie Dateien in verschiedenen Betriebssystemen benannt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X