如何在java中打开以特定前缀开头的所有文件?

时间:2011-07-12 15:34:46

标签: java file

有没有办法在Java中以特定名称开头的目录中打开一些文本文件?

例如,在我的目录中,我有以下文件:

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

所以现在在我的Java代码中我只想打开那些以“Ab-”开头的文件

5 个答案:

答案 0 :(得分:37)

是。使用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")

答案 1 :(得分:5)

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}.*")
}

答案 2 :(得分:1)

创建表示目录的java.io.File,然后使用listFiles methodFileNameFilter。您可以确切地告诉它您想要匹配的模式,例如name.startsWith(“Ab - ”)。

答案 3 :(得分:1)

File files[] = directory.listFiles();
for (File f : files) {
    If(//filename matches what you want)
    {   
        // do whatever you want with each  File f
    }
}

应该工作

答案 4 :(得分:0)

没有神奇的方法。您应列出检查名称的目录中的所有文件,并使用该模式读取文件。并递归检查每个目录。