黑马程序员技术交流社区

标题: 删除文件夹 [打印本页]

作者: 等待未来    时间: 2016-9-21 22:35
标题: 删除文件夹
package homeWork;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;

/*
* 从键盘接收一个文件夹路径, 删除该文件夹
*/
public class HomeWork {
        public static void main(String[] args) throws IOException {
                File dir = DirUtil.getDir();
                System.out.println("确定要删除 " + dir.getAbsolutePath() + " 吗? (Y/N)");
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                if (!"y".equalsIgnoreCase(br.readLine())) // 提示文件是不是真的要删除
                        return; // 结束程序
                delete(dir);
        }

        private static void delete(File dir) throws IOException {
                // 获取所有子文件
                File[] subFiles = dir.listFiles();

                // 遍历所有子文件
                if (subFiles != null)
                        for (File subFile : subFiles)
                                if (subFile.isFile())
                                        subFile.delete(); // 如果是文件就删除
                                else
                                        delete(subFile); // 如果是文件夹就递归 这里进入了子文件夹中

                // 所有子文件都删除之后, 删除当前文件夹
                dir.delete();
        }

        public static class DirUtil {

                public static File getDir() throws IOException {
                        BufferedReader br = new BufferedReader(new InputStreamReader(
                                        System.in));
                        System.out.println("请输入一个文件夹路径:");
                        while (true) {
                                File file = new File(br.readLine());
                                if (!file.exists()) // 如果不存在, 提示, 并重输
                                        System.out.println("该路径不存在, 请重新输入:");
                                else if (!file.isDirectory()) // 如果不是文件夹, 提示, 并重输
                                        System.out.println("您输入的不是文件夹路径, 请重新输入:");
                                else
                                        return file; // 如果存在, 并且是文件夹, 返回
                        }
                }

        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2