1. 程式人生 > >JAVA 刪除目標檔案 、過濾器

JAVA 刪除目標檔案 、過濾器

一、刪除目標檔案

public class File07{
    // ① 獲取目標檔案
    // ② 刪除目標檔案
    // ③ 驗證是否刪除成功
    public static void main(String[] args){
        File target = new File("file05");

    }
    //  非空資料夾不能直接刪除
    //  需求:如何一次性刪除非空資料夾

    private static boolean removeTargetFoleder(File file){
        //  如果引數為null  需要做安全處理
        if
(file == null){ return false; } // 檔案如果不存在 可以直接返回false if(!file.exists()){ return false; } // 如果是檔案 或者 空資料夾,可以直接做 delete() 操作 if(file.isFile() || file.list().length == 0){ return file.delete(); } // 遞迴處理
// 處理所有子檔案以及資料夾 try{ for(File f : file.listFile()){ // 遇到資料夾 優先遞迴處理 if(f.isDirectory()){ removeTargetFolder(f); } // 如果不是資料夾 可以直接刪除 // 如果是資料夾 也是處理後的空資料夾 也可以直接刪除 f.delete() } }catch
(Exception e){ // 如果刪除大量檔案和資料夾 處理過程中可能出現 刪除失敗 或者 取消刪除情況 return false; } return file.delete(); } }

二、過濾器

// 過濾器:獲取滿足條件的目標檔案
// File 相關過濾器:
// list(FilenameFilter)
// listFile(FilenameFilter)
// listFile(FileFilter filter)
// 獲取過濾器過濾後的滿足條件的File(String)陣列
public class File08{
    public static void man(String[] args){
        // ① 獲取目標檔案
        File target = new File("file04");
        // ② 獲取目標檔案的子目錄滿足條件的以及檔案()
        String[] names = target.list();
        // 1).生成條件(過濾器物件)
        // 2).獲取滿足條件的目標(過濾後的目標)  
        File[] targetList = target.listFiles(new FilenameFilter(){
            //  引數列表
            //  dir:file04 對應的file 型別物件
            //  name : file04 資料夾下所有一級檔案(夾)的檔名
            public boolean accept(File dir,String name){
                //  如果name 的字尾等於.java 那麼 過濾出來
                if(name.endsWith(".java")){
                    return true;
                }
                return false;
            }
        })
        // ③ 遍歷列印
        for(File file : targetList){
            System.out.println(file.getName());
        )
    }
}