2016-03-08 3 views
1

Я хочу, чтобы отфильтровать определенный тип файла из каталога, но я получаю сообщение об ошибке «Ошибка синтаксиса на лексемы, удалить эти маркеры»:каталог файлов Java (фильтр)

File dir = new File("c:/etc/etc"); 
    File[] files = dir.listFiles(new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return name.toLowerCase().endsWith(".txt"); 
} 
}); 

Я также получить кучу других ошибок, действительно запутался.

+1

Какое сообщение об ошибке вы получаете, и из какой строки это происходит? – resueman

+0

Первые две строки Я получаю «удалять эти маркеры» и «(ожидается после этого токена» после принятия. – Rupert

+0

Это выглядит отлично (замаскируйте неверное направление на последние две строки), нам понадобится еще один контекст, чтобы выяснить проблему здесь – SamTebbs33

ответ

0

В Java 8 вы можете использовать выражение лямбда, но это не решит вашу проблему. Я не вижу никаких ошибок или проблем с кодом, который вы разместили здесь.

File dir = new File("c:/etc/etc"); 
     File[] files = dir.listFiles((File dir1, String name) -> name.toLowerCase().endsWith(".txt")); 
+0

Извинения Я прокомментировал некоторые важные биты кода, поэтому он привел к этим ошибкам. Но теперь я получаю «dirr» и «файлы», подчеркнутые желтым цветом, и в результате ничего не появляется при запуске программы. Что мне нужно сделать? gs говорит, что локальная переменная не используется. – Rupert

+0

Если у нас нет полного кода, чтобы не представлять, что это за ошибка. из ошибки похоже, что вы используете назначение переменной в if loop, подобном этому (dirr = true) –

+0

ohh - это весь код для фильтрации файлов .txt. Ошибка состояла в том, что она случайно прокомментировала основной метод. Но при ошибках некоторые переменные, такие как dirr, подчеркнуты желтым, потому что его не используют. Интересно, как я могу использовать его для фильтрации файлов .txt – Rupert