用Java过滤文件数组

时间:2015-01-31 22:47:31

标签: java

如何过滤File数组以仅将pdf文件分配给数组? 我想要完成的一些伪代码:

File [] files; //this contains [3] array items

files.filter(pdf); //??

System.out.println("PDF only files:" files);

3 个答案:

答案 0 :(得分:2)

使用FilenameFilter

File dir = new File("/your/dir");
File[] files = dir.listFiles(new FilenameFilter() {
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith(".pdf");
    }
});

答案 1 :(得分:1)

如果您的pdf文件以.pdf结尾,则只需过滤名称:

List<File> pdfs = new ArrayList<>();
for(File f : files) {
    if(f.getName().toLowerCase().endsWith(".pdf")) {
        pdfs.add(f);
    }
}

答案 2 :(得分:0)

如果您使用Apache Commons,也可以使用SuffixFileFilter

File[] files = directory.listFiles(
    (FileFilter) new SuffixFileFilter(".pdf", IOCase.INSENSITIVE));