Добавить файлы и папки на лист - PullRequest
0 голосов
/ 06 июля 2019

Как запустить папку с подпапками и файлами и поместить их в список файлов и список каталогов?

Я пытался поставить только файлы. Я вышел, может быть, есть лучший способ?

public List<File> getFileList(String directoryPath, ArrayList<File> files) {
    File directory = new File(directoryPath);
    File[] filesList = directory.listFiles();
    for (File file : filesList) {
        if (file.isFile()) {
            if (!(file.isDirectory())) {
                if (file.getName().substring(file.getName().indexOf(".")).equals(".xml")) {
                    files.add(file);
                }
            }
        } else if (file.isDirectory()) {
            this.getFileList(file.getAbsolutePath(), files);
        }
    }
    return files;
}

Я хочу иметь всего два списка с каталогами и файлами.

1 Ответ

1 голос
/ 06 июля 2019

A File не может одновременно иметь значения File#isDirectory и File#isFile. Так что это

if (file.isFile()) {
            if (!(file.isDirectory())) {

не обязательно. Первого if достаточно, чтобы File был обычным файлом, а не каталогом.

Вы пытаетесь собрать только файлы, которые заканчиваются на .xml. Обратите внимание, что тестирование части имени файла, начинающейся с первой точки ., не является стабильным способом сделать это. Рассмотрим файл с именем foo.bar.baz.xml. Ваш подход будет проверять, что .bar.baz.xml равно .xml. Проверьте этот ответ о том, как сделать это стабильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...