Создание массива файлов в каталоге - PullRequest
2 голосов
/ 10 марта 2011

Как это делается в Java? Я хочу создать массив fileNames для вывода в программе, файлы будут в моем домашнем каталоге.

Пока у меня есть:

File[] fileList = new File(user.home).listFiles()

Это все, что мне нужно?

А затем, чтобы распечатать эти файлы, я могу просто сделать:

int i = 0;
while (fileList.getNext() != null) {
System.out.println(filelist[i]
i++
}

Большое спасибо.

Ответы [ 5 ]

4 голосов
/ 10 марта 2011

Похоже, вы правы. Я собрал ваш код немного чище.

File[] fileList = new File(System.getProperty("user.home")).listFiles();
        for (int i=0;i < fileList.length;i++) {
            System.out.println(fileList[i]);
        }
3 голосов
/ 10 марта 2011

Более или менее да, но вам нужно проверить, что файл является файлом, а не каталогом, если вам нужны только имена файлов.

public static String[] fileNames(String directoryPath) {

    File dir = new File(directoryPath);

    Collection<String> files  =new ArrayList<String>();

    if(dir.isDirectory()){
        File[] listFiles = dir.listFiles();

        for(File file : listFiles){
            if(file.isFile()) {
                files.add(file.getName());
            }
        }
    }

    return files.toArray(new String[]{});
}
1 голос
/ 10 марта 2011

Да, именно так мы получаем список файлов из локальной директории. Обратите внимание, что listFiles () также будет содержать каталоги Так что если вас интересуют только файлы, тогда вы должны проверить isFile () для каждого файла. Если вы заинтересованы, чтобы получить выборочный файл пользователя FileFilter.

0 голосов
/ 29 февраля 2016

Это самый простой способ, с помощью которого вы можете создать массив файлов, присутствующих в вашем домашнем каталоге. И используя цикл, вы можете получить имя всех файлов очень легко. Вот код:

  // Building array of files.
    File folder = new File(System.getProperty("user.home"));
    File[] listOfFiles = folder.listFiles();

  // Iterating array of files for printing name of all files present in the directory.
    for (int i = 0; i < listOfFiles.length; i++) {
        System.out.println("File Name: " +listOfFiles[i]);
    }
0 голосов
/ 10 марта 2011

вы должны изменить выборку списка файлов на

File[] fileList = new File(System.getProperty("user.home")).listFiles();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...