java删除文件夹及子目录

package test;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.File;

public class DelFile {

    /**
     * 删除某个文件夹下的所有文件夹和文件
     * 
     * @param delpath
     *            String
     * @throws FileNotFoundException
     * @throws IOException
     * @return boolean
     */
    public static boolean deletefile(String delpath) throws Exception {
        try {

            File file = new File(delpath);
            // 当且仅当此抽象路径名表示的文件存在且 是一个目录时,返回 true
            if (!file.isDirectory()) {
                file.delete();
            } else if (file.isDirectory()) {
                String[] filelist = file.list();
                for (int i = 0; i < filelist.length; i++) {
                    File delfile = new File(delpath + "\" + filelist[i]);
                    if (!delfile.isDirectory()) {
                        delfile.delete();
                        System.out.println(delfile.getAbsolutePath() + "删除文件成功");
                    } else if (delfile.isDirectory()) {
                        deletefile(delpath + "\" + filelist[i]);
                    }
                }
                System.out.println(file.getAbsolutePath() + "删除成功");
                file.delete();
            }

        } catch (FileNotFoundException e) {
            System.out.println("deletefile() Exception:" + e.getMessage());
        }
        return true;
    }

    /**
     * 输出某个文件夹下的所有文件夹和文件路径
     * 
     * @param delpath
     *            String
     * @throws FileNotFoundException
     * @throws IOException
     * @return boolean
     */
    public static boolean readfile(String filepath)
            throws FileNotFoundException, IOException {
        try {

            File file = new File(filepath);
            System.out.println("遍历的路径为:" + file.getAbsolutePath());
            // 当且仅当此抽象路径名表示的文件存在且 是一个目录时(即文件夹下有子文件时),返回 true
            if (!file.isDirectory()) {
                System.out.println("该文件的绝对路径:" + file.getAbsolutePath());
                System.out.println("名称:" + file.getName());
            } else if (file.isDirectory()) {
                // 得到目录中的文件和目录
                String[] filelist = file.list();
                if (filelist.length == 0) {
                    System.out.println(file.getAbsolutePath()
                            + "文件夹下,没有子文件夹或文件");
                } else {
                    System.out
                            .println(file.getAbsolutePath() + "文件夹下,有子文件夹或文件");
                }
                for (int i = 0; i < filelist.length; i++) {
                    File readfile = new File(filepath + "\" + filelist[i]);
                    System.out.println("遍历的路径为:" + readfile.getAbsolutePath());
                    if (!readfile.isDirectory()) {
                        System.out.println("该文件的路径:"
                                + readfile.getAbsolutePath());
                        System.out.println("名称:" + readfile.getName());
                    } else if (readfile.isDirectory()) {
                        System.out.println("-----------递归循环-----------");
                        readfile(filepath + "\" + filelist[i]);
                    }
                }

            }

        } catch (FileNotFoundException e) {
            System.out.println("readfile() Exception:" + e.getMessage());
        }
        return true;
    }

    public static void main(String[] args) {
        try {
            // readfile("D:/file");
            deletefile("E:/a");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        System.out.println("ok");
    }

}
原文地址:https://www.cnblogs.com/zfy0098/p/5522761.html