普通删除文件夹的方法:

File s= new File("D:\\shanchu");
System.out.println(s.delete());

但这仅限于空的文件夹,当文件夹有内容的时候,结果为false。

当文件夹中有内容,我们只能从里往外删除,而且不知道有多少级目录。如果文件夹底下是文件,直接删除,有文件夹则继续向里边走。

很明显这是一个递归算法。

建立一个用于递归的方法:

public static void remove(File s) {
File[] files=s.listFiles();                //列出当前目录下的文件以及文件夹
for(File file:files) {                       
if(file.isDirectory()) {                   //判断是否是目录
remove(file);                              //继续递归

}
else {
System.out.println(file+":"+file.delete());     //删除文件,用打印语句验证是否删除成功,是否有误删。
}

}

为了方便直观把删除的东西都显示出来

System.out.println(s+":"+s.delete());

部分结果如下:

D:\shanchu\ass4\.classpath:true
D:\shanchu\ass4\.project:true
D:\shanchu\ass4\.settings\org.eclipse.jdt.core.prefs:true
D:\shanchu\ass4\.settings:true
D:\shanchu\ass4\bin\ass4\DrawPanel.class:true
D:\shanchu\ass4\bin\ass4\MyCircle.class:true

回过头来看这个程序,为了避免异常的发生,我们不妨加上if判断语句

if(s.exists&&s.isDirectory)来确保文件夹存在而且是个目录。

转载于:https://www.cnblogs.com/zhc8016/p/10587599.html

删除一个带有文件的文件夹相关推荐

  1. 可以删除一个lib下所有文件的cl程序(转)

    可以删除一个lib下所有文件的cl程序(转) 最近在做报表查询程序.每次查询结果都生成临时文件在一个lib下. 程序中没控制查询完毕清除临时文件.所以想办法做了个cl程序加入作业调度里凌晨清除文件. ...

  2. linux上删除一个目录以及其下文件

    rm [options] 文件夹名称 参数 -i 删除前逐一询问确认 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认 r 将目录及以下之档案亦逐一删除 删除当前目录下所有文件和目录: rm - ...

  3. 使用python删除一个文件或文件夹

    参考使用python删除一个文件或文件夹 - 云+社区 - 腾讯云 使用python删除一个文件或文件夹,需要使用os模块. import os os.remove(path) # path是文件的路 ...

  4. Linux下删除一个文件夹命令

    Linux下大家经常要删除一些文件.直接使用rm即可,但是当要删除一个文件夹时,首先想到rmdir,但是如果文件夹非空,则非常麻烦. 下面的命令可以帮助删除一个非空的文件夹 #rm  -rf  文件夹 ...

  5. 使用python删除一个文件或文件夹几种办法

    import os os.remove(path) # path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除 os.rmdir(path) # ...

  6. Windows CMD删除文件或文件夹命令帮助

    文章目录 1. 删除文件`del`命令 2. 删除文件夹`rd`命令 1. 删除文件del命令 C:\Users\zj175>del /? 删除一个或多个文件.DEL [/P] [/F] [/S ...

  7. 【CMD】删除文件或文件夹

    前言 win10 删除文件 cmd> del /? 删除一个或多个文件.DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] ...

  8. python 删除文件或文件夹

    os.remove(path) 删除文件 path. 如果path是一个目录, 抛出 OSError错误.如果要删除目录,请使用rmdir(). remove() 同 unlink() 的功能是一样的 ...

  9. 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法

    22Python文件I/O 22.1打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: ...

最新文章

  1. 【redis】2.redis可视化工具安装使用
  2. 快排--java实现
  3. 高级软件工程第七次作业:东理三剑客团队作业-随笔5
  4. Delphi IDE扩展工具,在IDE中增加Google翻译器
  5. django的orm指定字段名,表名 verbose_name_plural
  6. springMVC整合mybatis 项目遇到问题总结
  7. 超低延时超低卡顿率视频传输的秘密
  8. foxmail 设置签名和信纸
  9. ETABS和SAP2000中质量源的定义
  10. 计算机的收获初一作文,收获的作文(精选8篇)
  11. 还在抠图?百万张PNG透明图片免费下载!
  12. Spring注解驱动开发第26讲——总有人让我给他讲讲@EnableAspectJAutoProxy注解
  13. 线性空间2--子空间
  14. Day3:现金流三拷问---投资环节
  15. java 中文分词转拼音_java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍...
  16. python-etl框架bonobo使用入门
  17. ts类型声明declare
  18. 重磅:小程序将可分享到朋友圈啦!
  19. 有没有测试鼠标是否丢帧的软件,深澜大叔教你如何准确检测鼠标是否丢帧
  20. 矩形广告是什么?矩形广告如何设置?

热门文章

  1. 找出数组中只出现过一次的数
  2. linux系统snmpd服务内存偏高,Red Hat Enterprise Linux 5.4 64位系统SNMP内存泄漏(上)
  3. mysql优于oracle的地方_MYSQL转为ORACLE要注意的地方
  4. JSP九大内置对象的分析,对应SERVLET中如何获取、使用
  5. php数组如何插入,PHP如何在数组指定位置插入单元
  6. 耿国华c语言程序设计,C语言程序设计课程教学探究.doc
  7. 12个免费的 Twitter Bootstrap 后台模板
  8. 在Content provider实现中使用SQLiteOpenHelper
  9. 如何开发Web3D游戏
  10. 2.窗口大小改变和侧边栏收缩的时候,echarts图表的自适应