Test_Java_File類遞歸練習(刪除該文件夾)

需求:從鍵盤接收一個文件夾路徑,刪除該文件夾

import java.io.File;
import java.util.Scanner;

public class Test2 {

    /*
     * 需求:從鍵盤接收一個文件夾路徑,刪除該文件夾
     * 
     * 分析:
     * 從鍵盤接收一個文件夾路徑:    
     * 1.創建鍵盤錄入對象
     * 2.定義一個無限循環
     * 3.將鍵盤錄入的結果存儲並封裝成File對象
     * 4.對File對象判斷
     * 5.將文件夾路徑對象返回
     * 
     * 
     * 刪除該文件夾
     * 1.獲取該文件夾下的所有文件和文件夾
     * 2.遍歷數組
     * 3.判斷是文件直接刪除
     * 4.如果是文件夾就遞歸調用
     * 5.循環結束後,把空文件夾刪掉
     */
    public static void main(String[] args) {
        File dir = getDir();
        deleteFile(dir);
    }

    /*
     * 從鍵盤接收一個文件夾路徑:
     * 1.返回值類型File
     * 2.參數列表無
     */
    public static File getDir(){
        //1.創建鍵盤錄入對象
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個文件夾路徑:");
        //2.定義一個無限循環
        while(true){
            //3.將鍵盤錄入的結果存儲並封裝成File對象
            String line = sc.nextLine();
            File dir = new File(line);
            //4.對File對象判斷
            if(!dir.exists()){
                System.out.println("您錄入的文件夾路徑不存在,請輸入一個文件夾路徑:");
            }else if(dir.isFile()){
                System.out.println("您錄入的是文件夾路徑,請輸入一個文件路徑:");
            }else{
                //5.將文件夾路徑對象返回
                return dir;
            }
        }
    }

    /*
     * 刪除該文件夾
     * 1.返回值類型void
     * 2.參數列表File dir
     */
    public static void deleteFile(File dir){
        //1.獲取該文件夾下的所有文件和文件夾
        File[] subFiles  = dir.listFiles();
        //2.遍歷數組
        for (File subFile : subFiles) {
            //3.判斷是文件直接刪除
            if(subFile.isFile()){
                subFile.delete();
            }else{
            //4.如果是文件夾就遞歸調用
                deleteFile(subFile);
            }
        }
        //5.循環結束後,把空文件夾刪掉
        dir.delete();
    }
}

這裏寫圖片描述

注意:該方法刪除的文件,在回收站無法找回

發佈了140 篇原創文章 · 獲贊 15 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章