2013-02-20 4 views
1

Я должен создать список из всех имен текстовых файлов в текущем рабочем каталоге ...имена текстовых файлов

я написал что-то вроде этого, но это на самом деле не работает я только что видел это в сети

String[] allomanyok2 = fl.list(); где fl является File типа ....

Мне нужны имена текстовых файлов, потому что я должен делать разные вещи с ними ...

может кто-нибудь мне помочь, как могу я получить t его имена в списке или что-то еще? ... thx expected

ответ

2

Предполагая, что вы хотите, текстовые файлы с расширением .txt, вы можете сделать следующее:

File file = new File("myDirectory"); 
String[] myTextFiles = file.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(".txt"); // Andrew Thompson's comment 
    } 
}); 

Здесь метод list() принимает FilenameFilter анонимный класс, который реализует метод accept(File, String). Этот метод просто проверяет, заканчивается ли имя файла .txt, возвращает true, если он это делает, возвращает false, если это не так.

Метод list() будет возвращать только файлы, заканчивающиеся на .txt.

Если вы хотите, чтобы ваш массив в виде списка:

List<String> myListTextFiles = Arrays.asList(myTextFiles); 
+0

говорит, что файл.list() не может иметь аргументы ... – spd92

+0

Используете ли вы 'java.io.File'? –

+0

@Sotirios Delimanolis Извините, я попытался отредактировать ваш ответ вместо моего – mbatchkarov

1

Вам необходимо использовать File#list(FilenameFilter). Внедрите фильтр, который принимает только строки, которые заканчиваются на txt. Я предполагаю, что все текстовые файлы будут иметь расширение .txt.

String[] allomanyok2 = fl.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(".txt"); 
    }; 
}); 
+0

и как я должен делать это? Я новичок в Java, поэтому есть вещи, которые я еще не знаю ... p – spd92

+0

см. обновленный ответ – mbatchkarov

+3

Я бы порекомендовал 'return name.toLowerCase(). endsWith (" txt ");' для catching 'README.TXT'. –

1

Попробуйте это:

File workingDir = new File("."); 
String[] textFiles = workingDir.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.endsWith(".txt"); 
    }; 
}); 
+0

Я бы порекомендовал 'return name.toLowerCase(). EndsWith (" txt ");' для catch' README.TXT'. –

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