2014-01-15 4 views
1

Я хочу открыть папку, в которой есть несколько подпапок. Каждая подпапка имеет несколько файлов. Я хочу открыть конкретный номер файла (скажем, 3-й файл в каждой папке) и манипулировать им. Может кто-то помочь, так как я не могу понять это из других потоков.просмотр папок в папке

Заранее спасибо

+2

Функция isDirectory() для проверки подкаталогов ... и listFiles() для получения списка всех файлов ... – TheLostMind

ответ

4

Пожалуйста, попробуйте код ниже, рекурсивно перебирает содержимое папки и позволяет читать/манипулировать третьим файл-

public void openAndManipulateFile(final File root) { 

    // get the list of files/folders 
    final File[] files = root.listFiles(); 
    int counter = 0; 

    for (File file : files) { 

     // if its a directory, read its contents 
     if (file.isDirectory()) { 
      // recursive method call 
      openAndManipulateFile(file); 
     } else { 
      if (++counter == 3) { 
       // open and manipulate the 3rd file 
      } 
     } 
    } 
} 

Для вызова -

File rootFolder = new File("some folder"); 
    openAndManipulateFile(rootFolder); 
+0

+1, это похоже на хороший ответ. но, пожалуйста, проверьте это http://meta.stackexchange.com/q/148272. –

+0

Привет, спасибо. Что вы имеете в виду, когда говорите «Называть это»? - значит ли это открыть файл и использовать его? – user2285526

+0

Чтобы начать процесс, вы можете передать базовую папку этому методу. –

0

Используйте это, чтобы прочитать все файлы из каталога

File folder = new File("/Users/you/folder/"); 
File[] listOfFiles = folder.listFiles(); 

Итерации над спискомOfFiles и проверка с помощью isDirectory(), если элемент является каталогом. Если да, вы можете использовать ту же самую процедуру для просмотра подпапок.

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