java中是否有一种方法可以根据文件名对文件夹中的特定类型的文件进行分组并单独添加?

时间:2012-11-02 10:49:43

标签: java file-io

我想知道是否有任何特定方法来过滤文件名并根据其前缀将文件数据单独添加到文件数组中???

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

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

我想知道是否还有其他方法4r这个?

3 个答案:

答案 0 :(得分:1)

使用FileFilterexample is here.所有你需要的是Java。没有外部依赖。

答案 1 :(得分:1)

Apache Commons IO有许多现成的file filters,您可以合并这些过滤器,对其应用ANDOR操作。此外,它使用这些过滤器有很多好file operations

答案 2 :(得分: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包中有许多非常有趣的方法可以移动文件,还可以处理文件必须移动到另一个文件系统的情况。