Pobieranie nazw plików wszystkich plików w folderze [duplikat]

Możliwy duplikat:
odczyt wszystkich plików w folderze

Muszę utworzyć listę ze wszystkimi nazwami plików w folderze.

Na przykład, jeśli mam:

000.jpg
012.jpg
013.jpg

Chcę je przechowywać w ArrayList z [000,012,013] jako wartości.

Jak najlepiej to zrobić w Javie ?

PS: jestem na Mac OS X

Author: Community, 2011-04-17

3 answers

Możesz to zrobić w ten sposób:

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

Czy chcesz pobierać tylko pliki JPEG lub wszystkie pliki?

 629
Author: RoflcoptrException,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-24 07:27:23

Create a File obiekt, przekazujący ścieżkę katalogu do konstruktora. Użyj listFiles(), Aby pobrać tablicę obiektów {[1] } dla każdego pliku w katalogu, a następnie wywołaj metodę getName(), Aby uzyskać nazwę pliku.

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());
    }
}
 112
Author: Sean Kleinjung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-14 17:59:36

Oto jak szukać w dokumentacji .

Po pierwsze, masz do czynienia z IO, więc spójrz w java.io pakiet .

Istnieją dwie klasy, które wyglądają interesująco: FileFilter i FileNameFilter . Kiedy kliknąłem na pierwszy, pokazało mi to, że w klasie listFiles() Pliku istnieje metoda alistFiles(). A dokumentacja tej metody mówi:

Zwraca tablicę abstrakcyjnych nazw ścieżek oznaczanie plików w katalogu oznaczona tą abstrakcyjną nazwą ścieżki.

Przewijając się w JavaDoc, widzę konstruktory. I to naprawdę wszystko, czego potrzebuję, aby móc utworzyć File instancję i wywołać listFiles() na niej. Przewijając dalej, widzę pewne informacje o tym, jak pliki są nazywane w różnych systemach operacyjnych.

 57
Author: Anon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-07 00:34:09