递归删除文件夹中所有文件

要递归首先需要有方法。递归,即方法自己调用自己。一般在程序中很少使用,但在这个实现中,我们无法知道文件夹的深度,更无法根据深度来实现循环的嵌套。

递归两个重要条件:

终止边界

重复执行相同的问题

例如我们要实现求1*2*3*4*5,我们可以把5和1*2*3*4的结果相乘,而如何获取1*2*3*4的结果呢,自然就是4与1*2*3*4的结果相乘了。而在这一过程中,我们始终是做同一件事:将n与n-1的阶乘进行相乘。当然不可能无止境的乘下去,所以我们需要一个终止条件:n == 1。在这两个条件下,我们便可以实现递归求得n的阶乘了。

用代码实现如下:

1 public static int jieCheng(intn) {2 if (n==1) { //终止条件

3 return 1;4 } else{5 return n * jieCheng(n-1); //n * (n-1)!

6 }7 }

递归求阶乘

类 File

Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。

用到的方法

String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

要删除一个目录下的所有文件和文件夹,我们可以分为这么几步:

首先我们指定一个根目录作为我们要删除的对象;

例举该目录下所有子文件和文件夹;

遍历子目录文件,如果为文件,则直接删除;如果为文件夹,则执行 2

将所有子文件、子文件夹都删除完毕后,删除文件夹本身

如下图所示,把圈代表文件,方块代表文件夹,则得到如下的执行顺序:

判断为不为空的文件夹,到2

判断为不为空的文件夹,到3

判断为空的文件夹,删除自己,到4

判断为文件,删除自己,到5

此时该文件夹中所有内容都已删除为空,删除自己,到6

不为空文件夹,到7

为文件,删除自己,到8

空文件夹,删除自己,到9

此时根目录已经为空文件夹了,再删除自己,至此,所有文件和文件夹删除完毕

用代码实现就是以下的效果:

1 public static voiddelDir(File file) {2 if(file.isDirectory()) {3 File zFiles[] =file.listFiles();4 for(File file2 : zFiles) {5 delDir(file2);6 }7 file.delete();8 } else{9 file.delete();10 }11 }

十行代码删除所有文件

java 文件递归删除文件夹_Java十行代码实现递归删除文件夹中所有文件相关推荐

  1. linux 查找文件夹命令_如何从命令行在Linux中查找文件,文件夹和目录?

    linux 查找文件夹命令 Linux provides different ways to find and locate files and folders. We can use GUI too ...

  2. 在计算机窗口中打开文件夹选项,电脑无法在同一窗口打开文件夹怎么办?如何设置在电脑原窗口中打开文件夹...

    ‍ 最近有用户发现不知道进行什么设置后,当在电脑系统中打开文件夹时,总是以新的弹出窗口的形式打开,在很多级的情况下,会打开过多的窗口,十分不便.如果我们遇到了相同的情况,又该怎么设置才能让电脑在同一窗 ...

  3. java web pdf 打印预览_java原装代码完成pdf在线预览和pdf打印及下载

    前提准备: 1. 项目中至少需要引入的jar包,注意版本: a) core-renderer.jar b) freemarker-2.3.16.jar c) iText-2.0.8.jar d) iT ...

  4. java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...

    package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要 ...

  5. java非递归遍历file树_Java语言实现非递归实现树的前中后序遍历总结

    前言 三种遍历的递归写法都很好写,所以总结一下非递归写法. 先贴一张图复习一下三种遍历方式就进入正文啦~ [注:本文所有代码实现中树的结点定义如下: public class Node { int v ...

  6. java鼠标右击出现选择窗口_java菜单代码 java中鼠标右击弹出菜单怎样实现

    帮忙给一个java菜单栏例子的源代码 给你个小例子,已经添加注释了.自己运行下看看效果,满意的话记得结贴子. import java.awt.BorderLayout; import java.awt ...

  7. java applet找不到类_java – Applet类加载器在applet的jar中找不到类

    我开始问这个问题,然后在提交之前找出答案.我决定发布这个问题,以便遇到同样问题的其他人能够从我的错误中吸取教训. 我遇到了一个applet(实际上是JApplet)无法实例化另一个类的问题,该类与ap ...

  8. 资源管理器整理计算机中的文件,如何整理电脑文件夹?

    对于资料比较混乱的情况,我们可以通过搜索工具来搜索整理,然后在搜索结果中进行处理.比如用强力快速搜索工具Everything来按需根据文件名搜索整理.如果要按文档内容来搜索,可使用EmEditor文本 ...

  9. 电脑中重复文件怎么删除?教你查找并删除重复文件

    电脑中重复文件怎么删除?久友小编教你查找并删除重复文件 相信大家都有这样的情况,我们经常在电脑中下载文件或者歌曲,时间一长就忘记了.最后导致这些文件占用了大量的硬盘空间.下面小编就推荐大家一款小软件, ...

最新文章

  1. 5如何将表格的一行数据清空_微信公众号推文中如何自定义添加表格?
  2. openresty开发系列1--网关API架构及选型
  3. Win11开始大范围推送!
  4. 创建你自己的AngularJS -- 第一部分 Scopes(一)
  5. Ubuntu16.04编译Android5.1源码
  6. 微积分的未来:DNA、非线性、混沌、复杂系统与人工智能
  7. DIY智能车赛优胜奖开源作品——手机遥控麦克纳姆轮小车(1)
  8. html svg矩形添加文字,SVG 矩形
  9. iOS 技术支持网址
  10. 奇艺CEO龚宇:超过所有搜狐人做的视频网站
  11. SQL经典50查询语句案例_7(查询学过“叶平”老师所教的所有课的同学的学号、姓名)
  12. 探秘阿里聚石塔技术架构实现(一)
  13. INDEX REBUILD和INDEX REORGANIZE和UPDATE STATISTICS是否涉及Sch-M的案例分析
  14. 操作系统之文件管理系统
  15. 吸波材料衰减常数计算,Excel源代码
  16. 使用GloVe生成中文词向量
  17. Liferay Portal 7.2 CE GA1 发布
  18. these untracked files will be overwritten by checkout
  19. 笔记:机器学习——吴恩达 第九周
  20. 小程序组件获取元素宽高失效 和canvas绘制问题

热门文章

  1. Cloud for Customer的Inplace Edit Container
  2. Opportunity expected revenue storage field
  3. what happens if PR_TYPE is mapped to a given transaction type
  4. Service order save debug for distribution lock set logic
  5. CRM_UPLOAD_BW
  6. SAP云平台CloudFoundry的Access Token和refresh token
  7. SAP CRM WebUI上Opportunity reason字段的后台配置
  8. 横流式冷却塔计算风量_冷却塔空气动力是怎么计算的?
  9. 从零开始学计算机组装与维修技术,从新手到高手:电脑组装、维护与故障排除...
  10. php dvld.active 1,PHP的字符串