Test_Java_File类递归练习(删除该文件夹)

来源:互联网 发布:东莞plc编程培训机构 编辑:程序博客网 时间:2024/06/11 03:58

需求:从键盘接收一个文件夹路径,删除该文件夹

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();    }}

这里写图片描述

注意:该方法删除的文件,在回收站无法找回

原创粉丝点击