2015-01-31 45 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));