Java 删除空文件夹和文件夹及其下面的文件

一、删除代码:

package deletedir;

import java.io.File;

public class DeleteDir {
    //删除空目录
    public void doDeleteEmptyDir(String dir) {
        boolean success = (new File(dir)).delete();
        if (success) {
            System.out.println("Successfully deleted empty directory: " + dir);
        } else {
            System.out.println("Failed to delete empty directory: " + dir);
        }
    }
    
    //递归删除文件夹及其下面的文件
    public boolean deleteDir(File dir) {
        //循环遍历待删除目录下的文件
        if (dir.isDirectory()) {
            String[] children = dir.list();
            for (int i=0; i<children.length; i++) {
                //采用递归方式,即使待删除文件夹下还有多层目录,也会递归先都删除掉
                boolean success = deleteDir(new File(dir, children[i]));
                if (!success) {
                    return false;
                }
            }
        }
        // 目录此时为空,可以删除
        return dir.delete();
    }

}

 

二、测试:


package deletedir;

import java.io.File;

public class TestDeleteDirMain {
    public static void main(String[] args) {
        DeleteDir deleteDir = new DeleteDir();
        String dir="D://test//zipRes//004";
        File dirs =new File("D://test//zipRes//0001");
        //删除空目录的功能
        deleteDir.doDeleteEmptyDir(dir);
        //删除目录及其目录下的文件(采用递归的方式实现的。)
        boolean results = deleteDir.deleteDir(dirs);
        if(results){
            System.out.println("删除成功...");
        }else{
            System.out.println("删除失败...");
        }
    }

}
 

说明:

(1)删除空目录方法:例如指定路径:D://test//zipRes//004,004文件夹下面是空的,在调用 deleteDir.doDeleteEmptyDir(dir);后,就会把指定路径下的004文件夹删除,结果为:D://test//zipRes

(2)递归删除文件夹及其文件夹下的文件:例如指定的路径:D://test//zipRes//0001,0001文件夹下面有文件,所以再删除0001文件夹之前,会先递归删除0001下面的所有文件,然后在删除0001文件件。最后执行  boolean results = deleteDir.deleteDir(dirs);后的结果为D://test//zipRes。

转载于:https://my.oschina.net/u/3197158/blog/911154

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值