要在Java中平台无关的方式下安全地删除一个非空目录,你还需要一个算法。该算法首先删除文件,然后再从目录树的底部由下至上地删除其中所有的目录。

只要简单地在目录中循环查找文件,再调用delete就可以清除目录中的所有文件:

static public void emptyDirectory(File directory) {

File[ ] entries = directory.listFiles( );

for(int i=0; ientries[i].delete( );

}

}

这个简单的方法也可以用来删除整个目录结构。当在循环中遇到一个目录时它就递归调用deleteDirectory,而且它也会检查传入的参数是否是一个真正的目录。最后,它将删除作为参数传入的整个目录。

static public void deleteDirectory(File dir) throws IOException {

if( (dir == null) || !dir.isDirectory) {

throw new IllegalArgumentException(

"Argument "+dir+" is not a directory. "

);

}

File[ ] entries = dir.listFiles( );

int sz = entries.length;

for(int i=0; iif(entries[i].isDirectory( )) {

deleteDirectory(entries[i]);

} else {

entries[i].delete( );

}

}

dir.delete();

}

在Java 1.1以及一些J2ME/PersonalJava的变种中没有File.listFiles方法。所以只能用File.list,它的返回值一个字符串数组,你要为每个字符串构造一个新的文件对象。

【编辑推荐】

【责任编辑:王观 TEL:(010)68476606】

点赞 0

java中递归删除_浅谈Java中使用递归方法删除文件相关推荐

  1. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  2. java布尔类型比较器_浅谈Java中几种常见的比较器的实现方法

    在java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题. 通常对象之间的比较可以从两个方面去看: 第一个方面:对象的地址是否一样,也就是是否引用自同一个对象.这种方式可以直接使用& ...

  3. java null什么意思_浅谈java中null是什么,以及使用中要注意的事项

    1.null既不是对象也不是一种类型,它仅是一种特殊的值,你可以将其赋予任何引用类型,你也可以将null转化成任何类型,例如: Integer i=null; Float f=null; String ...

  4. java 中的排序_浅谈java中常见的排序

    浅谈java中常见的排序 学过java的人都知道,排序这一部分初次接触感觉还是有点难以理解,很多地方也会用到.然而,在java中常见的排序方法:冒泡排序,选择排序,插入排序等等.下面就让我们一起揭开他 ...

  5. java定义byte数组_浅谈java的byte数组的不同写法

    (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"byte数组"里面全部是&qu ...

  6. java 对象之间转换_浅谈java对象之间相互转化的多种方式

    浅谈java对象之间相互转化的多种方式,对象,属性,参数,赋值,不支持 浅谈java对象之间相互转化的多种方式 易采站长站,站长之家为您整理了浅谈java对象之间相互转化的多种方式的相关内容. 第一种 ...

  7. java编程double相乘_浅谈Java double 相乘的结果偏差小问题

    看下面的一段代码的运行结果: public class TestDouble { public static void main(String[] args) { double d =538.8; S ...

  8. python中rstrip用法_浅谈Python3中strip()、lstrip()、rstrip()用法详解

    简单来说,三种方法是为了删除字符串中不同位置的指定字符.其中,strip()用于去除字符串的首尾字符,同理,lstrip()用于去除左边的字符,rstrip()用于去除右边的字符 Python中有三个 ...

  9. python中怎么计数_浅谈python中统计计数的几种方法和Counter详解

    1) 使用字典dict() 循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1. lists = ['a','a','b ...

  10. python 中arange函数_浅谈Python中range与Numpy中arange的比较

    本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明. 1. range与arange的比较 (1)相同点:A.参数的可选性. ...

最新文章

  1. 十一月第三周学习进度条
  2. 阿里云centos 6.5 32位安装可视化界面的方法
  3. Java 第7章 数组
  4. 女神一秒变路人!腾讯研究AI卸妆效果算法出品“一键卸妆”功能
  5. 2010年高教社杯全国大学生数学建模竞赛题目B题解析及层次分析法AHP在其中的应用
  6. 模板模式(Template)
  7. 经典算法题每日演练——第十八题 外排序
  8. c语言 机器语言 汇编语言_多语言机器人新闻记者
  9. 软考-网络工程师复习资料
  10. 基于Java的电子会议预约管理系统
  11. 数据面最流行的工具包dpdk的前世-现在和未来
  12. android弹球游戏小球运动,球球跳一跳跳舞弹球
  13. 使用C#开发纽曼USB来电通来电弹屏客户端小结
  14. 在ubuntu18.04上安装以及运行Faster-lio
  15. 我被一只老鼠的吱吱声吵醒了
  16. python中的魔法方法__new___Python魔法方法会调用new方法吗?
  17. Kaggle_NBME NLP比赛Baseline详解(2)
  18. Ae 脚本:TypeMonkey 动态文本动画
  19. pr文字转语音有插件吗_自媒体非常实用的文字转语音软件,配合PR软件实用简直绝配...
  20. 微服务架构开发实战:如何集成Zuul和实现API网关?

热门文章

  1. Nagios飞信linux系统免费短信报警配置
  2. 【Head First 设计模式】-装饰者模式读后总结
  3. c语言有较强的网络操作功能吗,《对于C语言的理解》--06级网络班 刘丽君
  4. c语言字符型运算符,C语言试题:数据类型、运算符与表达式
  5. ssh转发代理:ssh-agent用法详解
  6. mysql把某一列的数据更新到另一列中(涉及到多张表的数据)
  7. Python对DICOM图像进行阈值分割
  8. eclipse自动补全设置
  9. struts2文件下载
  10. DateFormat是线程不安全