Java 递归删除文件夹

使用File 的delete()方法删除文件

文件夹不能直接使用delete()方法删除,需要遍历文件夹下的所有子文件以及子目录,将子文件删除后,确保文件夹下没有任何文件或者目录的情况下,才可使用delete()方法将其删除。

直接上代码!!!!以下代码仅供参考!!未对是否删除成功进行判断。由于时间匆忙写的比较粗糙,请见谅!

 

package com.test;

import java.io.File;

/**
 * 删除F:/Idea_workspace目录下的所有target文件夹
 *
 **/
public class Test {

    public static void main(String[] args) {
        File file = new File("F:/Idea_workspace");
        deleteTarget(file);
    }
    
        //遍历删除所有target目录
    public static void deleteTarget(File file){
        if(!file.exists()) return;
        if(!file.isDirectory()) return;
        System.out.println(file.getName());
        if("target".equals(file.getName())){
            deleteFolder(file);
            return;
        }
        File[] files = file.listFiles();
        if(files.length > 0){
            for(File target : files){
                deleteTarget(target);
            }
        }
    }
    
        //删除文件夹
    public static void deleteFolder(File file){
        if(!file.exists()) return;
        System.out.println(file.getName());
        if(!file.isDirectory()) return;
        File[] files = file.listFiles();
        if(files.length <= 0 ){
            file.delete();
            return;
        }
        for (File child : files) {
            if(child.isDirectory()){
                deleteFolder(child);
            }else{
                child.delete();
            }
        }
        file.delete();
    }
    
}

 

posted @ 2016-10-18 14:50  w_mmmmmmmmmm  阅读(457)  评论(0)    收藏  举报