2012-11-02 77 views
1

我想知道是否有任何特定的方法来过滤文件名称,并根据其前缀将特定文件单独添加到文件数组?在java中有一种方法可以根据文件名从一个文件夹中分组特定类型的文件并单独添加它们吗?

例如: 文件:A_error_log.txt,A.TXT,A.fasta,B.fasta,B_error_log.txt 从上面的文件列表,我只是想在A类型的文件移动到文件夹和B型文件到另一个文件夹。

一个标准的解决方案是,获取文件列表,然后使用get name检查它们是否存在特定的文件名前缀并添加它们。

我想知道有没有其他方法已经存在4r这?

回答

0

如果你能容忍一个额外的外部依赖Apache Commons IO的一个FileFilter包有多个预制的过滤器对这种操作的,你想要的是容易做WildcardFileFilter

File dir = new File("."); 
FileFilter fileFilter = new WildcardFileFilter("A*"); 
File[] files = dir.listFiles(fileFilter); 
for (int i = 0; i < files.length; i++) { 
    System.out.println(files[i]); 
} 

还有很多其他的过滤器,以及一组“逻辑”过滤器(AndFileFilter,OrFileFilter和NotFileFilter),允许您将多个过滤器串在一起。

如果您决定使用Commons IO,在FileUtils包中有许多非常有趣的方法来移动文件,这也处理文件必须移动到另一个文件系统的情况。

相关问题