2016-02-26 3 views
0

У меня есть папка «файлы» в моем проекте. Я хочу создать запрос всех файлов в нем. 1. Как открыть эту папку без указания полного пути? 2. Как перенести все файлы из моей папки в этот запрос?Запрос файлов из папки «файлы» в проекте

ArrayDeque<File> files = new ArrayDeque<File>(); 

Я написал код. Но программа дает мне имя папки вместо имени файлов в ней. Поэтому моя программа не находит папку в моей папке проекта. Как я могу получить папку «folder1» без всякого пути? Это мой код

public static void main(String args[]) 
{ 
    File file = new File("<folder1>"); 
    ArrayDeque<File> queue = new ArrayDeque<File>(); 
    filesQueue(file, queue); 
    System.out.print(queue.getFirst()); 
} 

public static ArrayDeque<File> filesQueue(File f, ArrayDeque<File> queue) { 
     if (f.isDirectory()) { 
      for (File file : f.listFiles()) { 
       filesQueue(file, queue); 
      } 
     } else { 
      queue.addLast(f); 
     } 

    return queue; 
} 
+1

Возможный дубликат [Читать все файлы в папке] (http://stackoverflow.com/questions/1844688/read-all-files-in-a-folder) – user2004685

ответ

1
File file=new File("<folder-name>"); 
ArrayDeque<File> filesQueue=listFiles(file); 

static ArrayDeque<File> fileList=new ArrayDeque<File>(); 
public ArrayDeque<File> listFiles(File folder) { 

    for (File f : folder.listFiles()) { 
     if (f.isDirectory()) { 
      listFiles(f); 
     } else { 
      fileList.add(f); 
     } 
    } 
return fileList; 
} 
+2

Ваша рекурсия не будет добавлять к тому же 'fileList', что и текущий вызов. –

0
File folder = new File("src/folder1"); 
+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. - [Из обзора] (https://stackoverflow.com/review/low-quality-posts/11423454) – Ferrybig

Смежные вопросы