Как вернуть все значения String из цикла while в Java? - PullRequest
0 голосов
/ 24 апреля 2018

Я делаю класс слайд-шоу, и мне нужно вернуть все значения (типа String) из списка (с элементами типа File).Я использую File [counter] .getAbsolutePath (), чтобы получить строку, которая понадобится мне позже.Однако мне нужно получить все значения путей, проходящих через File.

public String getFilesFromDirectory(String path) {

    File thisDirectory = new File(path);
    File[] listDirFiles = thisDirectory.listFiles()
    while (count < listDirFiles.length-1) 

        if(listDirFiles[count].isFile() || listDirFiles[count].isDirectory() || listDirFiles[count].isHidden()){
            count++;
            System.out.println(listDirFiles[count].getAbsolutePath());
    }

    return listDirFiles[count].getAbsolutePath();

count находится в 0

в операторе if, я хочу вернуть все listDirFiles [count].getAbsolutePath (), но проблема в том, что после оператора if.Как мне обойти это?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Вам нужно перебрать ваш listDirFiles, получить de String, сохранить в коллекции (List / Set / Array) строк и вернуть эту коллекцию.

Пример:

List<String> filesPath = new ArrayList<>();
for(int x=0; x<listDirFiles.lenght; x++){
   filesPath.add(listDirFiles[x].getAbsolutePath());

}

return filesPath;

Вы также можете использовать лямбда-выражения, https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

0 голосов
/ 24 апреля 2018

Как я правильно понимаю, вы хотите вернуть все абсолютные пути доступных файлов в вашем каталоге.

Поэтому я бы порекомендовал вернуть список строк List<String> вместо одной строки.Тогда ваш код должен выглядеть так:

public List<String> getFilesFromDirectory(String path) {

    List<String> filePaths = new ArrayList<String>();
    File thisDirectory = new File(path);
    File[] listDirFiles = thisDirectory.listFiles()

    // i would choose a for each loop for this instead of while...
    for(File file : listDirFiles) {
        if(file.isFile() || file.isDirectory() || file.isHidden()) {
            // add the path to the list
            filePaths.add(file.getAbsolutePath());
        }
    }

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