美文网首页每天写1000字每天写500字Java学习笔记
File类——递归删除多级文件夹及文件

File类——递归删除多级文件夹及文件

作者: 扒块腹肌 | 来源:发表于2017-01-22 22:32 被阅读197次

    实现删除某个目录删除及该目录里面所有的子文件和文件夹的功能

    整体思路:

    • 文件存在
    •      是文件 --直接调用delete删除
      
    •  是文件夹--接收文件夹下file实例并遍历
      
    •              调用自身递归判断
      
    •  删除空文件夹
      
    import java.io.File;
    
    /**
     * @author Administrator
     */
    public class DiGuiTest
    {
        public static void main(String[] args)
        {
            File file = new File("F://test");
            deletAllFiles(file);
        }
        
        /**
         *递归删除文件目录及文件
         * @param file
         */
        public static void deletAllFiles(File file)
        {
            if (file == null)
            {
                return;
            }
            //文件目录存在?(包括文件及文件夹)
            if (file.exists())
            {
                //是文件?
                if (file.isFile())
                {
                    System.out.println(file.getAbsolutePath());
                    file.delete();
                }
                //是文件夹?
                else if (file.isDirectory())
                {
                    //接收文件夹目录下所有的文件实例
                    File[] listFiles = file.listFiles();
                    //文件夹为空 递归出口
                    if (listFiles == null)
                    {
                        return;
                    }
                    for (File file2 : listFiles)
                    {
                        //foreach遍历删除文件 递归
                        deletAllFiles(file2);
                        System.out.println("正在删除文件夹 " + file.getAbsolutePath());
                    }
                    
                    //递归跳出来的时候删除空文件夹
                    System.out.println("正在删除文件夹" + file.getAbsolutePath());
                    file.delete();
                }
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:File类——递归删除多级文件夹及文件

        本文链接:https://www.haomeiwen.com/subject/cdwobttx.html