在java中獲取指定類型的文件,可以用帶參數的listFiles的來實現
在網上搜了一些方法,幾乎都是新建一個實現FilenameFilter或者FileFilter的類,然后把它作為listFiles的參數
但是在寫一些簡單的測試代碼的時候,我不想新建一個類,而是希望用更快的方法來實現文件的過濾
所以就可以這樣寫:
File filepath = new File("D://");File[] files = filepath.listFiles(new FilenameFilter() { @Override public boolean accept(File file, String s) { //查找文件名以.jpg結尾的文件 if (s.endsWith(".jpg")) { return true; } return false; }});這樣直接new一個實現FilenameFilter接口的對象作為listFiles的參數,就不用再新建一個類
listFiles還有另外一個參數FileFilter,也同樣可以實現過濾
File[] files = filepath.listFiles(new FileFilter() { @Override public boolean accept(File file) { //查找文件名以.jpg結尾的文件 if (file.getName().endsWith(".jpg")) { return true; } return false; }});除此之外,FileFilter還有其他過濾文件的方式,比如查找所有非文件夾文件:
File[] files = filepath.listFiles(new FileFilter() { @Override public boolean accept(File file) { //查找所有非文件夾文件 if (!file.isDirectory()) { return true; } return false; }});查找指定大小的文件:
File[] files = filepath.listFiles(new FileFilter() { @Override public boolean accept(File file) { //查找大于1kb,小于2kb的文件 long length = file.length(); if (length > 1024 && length < 2048) { return true; } return false; }});個人感覺FileFilter比FilenameFilter更加強大
新聞熱點
疑難解答