递归删除文件夹的两种方法

package net.jxatei.jsj.test;


import java.io.File;


public class DeleteDir
{


    public static void main(String[] args)
    {
// 封装目录
        File srcFolder = new File("copyfiles");
// 递归实现
        deleteFolder(srcFolder);
// File src = new File ( "copyfiles" );
// deleteDir ( src , "" );
    }


    private static void deleteFolder(File srcFolder)
    {
// 获取该目录下的所有文件或者文件夹的File数组
        File[] fileArray = srcFolder.listFiles();


        if (fileArray != null)
        {
// 遍历该File数组,得到每一个File对象
            for (File file : fileArray)
            {
// 判断该File对象是否是文件夹
                if (file.isDirectory())
                {
                    deleteFolder(file);
                }
                else
                {
                    System.out.println(file.getName() + "---" + file.delete());
                }
            }


            System.out
                    .println(srcFolder.getName() + "---" + srcFolder.delete());
        }
    }


    /**
     * 删除文件夹
     *  
     *
     * @param src             源文件对象
     * @param name            文件路径
     */
    public static void deleteDir(File src, String name)
    {


        if (!src.exists())
        {
            System.out.println("文件不存在");
            return;
        }
        else
        {
            if (src.isDirectory())
            {


// 文件是否为目录
                File[] files = src.listFiles();
// 将目录的文件路径封装成数组
                if (files.length > 0)
                {
// 如果文件夹里面有文件,遍历目录
                    for (File dir : files)
                    {
// 递归遍历目录
                        deleteDir(dir, dir.getName());
// 删除目录
                        dir.delete();
// 删除目录的上一级文件夹
                        dir.getParentFile().delete();
                        System.out.println("文件夹已删除");


                    }
                }
                else
                {
// 否则是一个空目录,直接删除
                    src.delete();
                    System.out.println("文件件删除成功");
                }


            }
            else if (src.isFile())
            {
// 是文件的话,也可以直接删除
                src.delete();
                System.out.println("删除成功");
            }


        }


    }


}

 

你可能感兴趣的:(递归删除文件夹的两种方法)