2015-02-03 2 views
0

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

благодарит за помощь!

String pathLevel= "/Users/MaxRuizTagle/Desktop/hola/"; 


File file = new File(pathLevel); 
String [] levelNames = file.list(); 
String [] matrix= new String[levelNames.length]; 
+0

'file.list()' также может возвращать список 'File'-Objects. Вы можете перебирать их и использовать 'file.isHidden()' – Steffen

+5

. Вы уже задали аналогичный вопрос вчера, и я даже [ответил вам] (http://stackoverflow.com/a/28289545/1093528) – fge

+0

Возможный дубликат [читать имена файлов из каталога без системных файлов (.DS \ _Store)] (http://stackoverflow.com/questions/28290744/read-files-names-from-directory-without-system-files-ds-store) – BackSlash

ответ

1

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

File file = new File(pathlevel); 
String[] levelNames = file.list(new FilenameFilter() { 

    @Override 
    public boolean accept(File dir, String name) { 
     return !dir.isHidden(); 
    } 
}); 
+0

@ Тома, это правильно :) Извините, виноват –

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