Получение имен файлов всех файлов в папке
Возможный дубликат:
Читать все файлы в папке
Мне нужно создать список со всеми именами файлов в папке.
Например, если у меня есть:
000.jpg
012.jpg
013.jpg
Я хочу сохранить их в ArrayList
с [000,012,013]
как значения.
Какой лучший способ сделать это в Java?
PS: Я нахожусь в Mac OS X
Ответы
Ответ 1
Вы можете сделать это так:
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());
}
}
Вы хотите получить только файлы JPEG или все файлы?
Ответ 2
Создайте объект File
, передав путь к конструктору конструктору. Используйте listFiles()
для извлечения массива объектов File
для каждого файла в каталоге, а затем вызовите метод getName()
, чтобы получить имя файла.
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());
}
}
Ответ 3
Здесь, как смотреть в документации.
Во-первых, вы имеете дело с IO, поэтому посмотрите java.io
package.
Есть два класса, которые выглядят интересными: FileFilter и FileNameFilter. Когда я нажал на первый, он показал мне, что существует метод listFiles()
в классе File. И документация для этого метода говорит:
Возвращает массив абстрактных путей обозначение файлов в каталоге обозначается этим абстрактным пустым именем.
Прокрутка в File
JavaDoc, я вижу конструкторы. И это действительно все, что мне нужно, чтобы создать экземпляр File
и вызвать listFiles()
на нем. Прокручивая еще дальше, я могу увидеть некоторую информацию о том, как файлы называются в разных операционных системах.