Как открыть все файлы, которые начинаются с определенного префикса в Java? - PullRequest
9 голосов
/ 12 июля 2011

Есть ли способ открыть некоторые текстовые файлы в каталоге, который начинается с определенного имени в Java?

Например, в моем каталоге у меня есть следующие файлы:

Ab-01.txt
Ab-02.txt
Ab-03.txt
Ab-04.txt
SomethingElse.txt
NotRelated.txt

Так что теперь в моем Java-коде я хочу открывать только те файлы, которые начинаются с «Ab-»

Ответы [ 5 ]

38 голосов
/ 12 июля 2011

Да. Используйте File.listFiles(FilenameFilter):

Как пример:

File dir = new File("/path/to/directory");
File[] foundFiles = dir.listFiles(new FilenameFilter() {
    public boolean accept(File dir, String name) {
        return name.startsWith("Ab-");
    }
});

for (File file : foundFiles) {
    // Process file
}    

Конечно, измените условие в методе accept() на то, что вам нужно. Так что может быть name.startsWith("Ab-") && name.endsWith(".txt").

5 голосов
/ 12 июля 2011

http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#listFiles(java.io.FilenameFilter) используйте этот метод в родительской папке и реализует FilenameFilter, например:

boolean accept(File dir, String name){
     return name.matches("AB-\n{2}.*")
}
1 голос
/ 12 июля 2011
File files[] = directory.listFiles();
for (File f : files) {
    If(//filename matches what you want)
    {   
        // do whatever you want with each  File f
    }
}

Должно работать

1 голос
/ 12 июля 2011

Создайте java.io.File, представляющий ваш каталог, затем используйте метод listFiles , который принимает FileNameFilter .Вы можете точно сказать, какому шаблону вы хотите соответствовать, например name.startsWith ("Ab -").

0 голосов
/ 12 июля 2011

Волшебного пути нет.Вы должны перечислить все файлы в каталоге, проверяя имена, и прочитать файлы с шаблоном.И проверять каждый каталог рекурсивно.

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