java基礎 File與遞迴練習 使用檔案過濾器篩選將指定檔案夾下的小於200K的小檔案擷取並列印按層次列印(包括所有子檔案夾的檔案),
package com.swift.kuozhan;import java.io.File;import java.io.FileFilter;/*使用檔案過濾器篩選將指定檔案夾下的小於200K的小檔案擷取並列印(包括所有子檔案夾的檔案)。*/public class kuaozhan1 { public static void main(String[] args) { File dir = new File("c:/"); if(!dir.exists()) { throw new RuntimeException("該檔案夾不存在"); } get200(dir, 0); } private static void get200(File dir, int length) { if(!dir.exists()) { throw new RuntimeException("該檔案夾不無存取權限"); } for (int i = 0; i < length; i++) System.out.print("\t"); System.out.println(dir); File[] files = dir.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.isDirectory()) return true; if (pathname.isHidden()) return false; if (pathname.length() / 1024 < 200) return true; return false; } }); for (File file : files) { if (file.isDirectory()) { get200(file, length + 1); } else { for (int i = 0; i < length; i++) System.out.print("\t"); System.out.println("\t" + file); } } }}