2015-01-31 59 views
0

如何过滤文件数组以将PDF文件分配给数组? 什么我试图完成一些伪代码:用Java过滤文件数组

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

files.filter(pdf); //?? 

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

您是否尝试过使用for for循环? – 2015-01-31 22:52:23

回答

1

如果你的PDF文件,.pdf结束了,你可以在名字只过滤:

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

你可以使用lambda来做这件事。 – 2015-01-31 22:54:44

+0

'File [] files = dir.listFiles((dir,name) - > name.toLowerCase()。endsWith(“。pdf”))'(我喜欢单行解决方案) – 2015-01-31 22:56:14

+1

@ArnaudDenoyelle这只是Java 8,虽然 – Dave 2015-01-31 22:59:12

0

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

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