- 引言:怎样才能遍历出一个文件夹中的所有文件呢,我们知道,java中的File类中有这样的方法,list() ,可以返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。我们是否可以用这个方法返回一个字符串数组,然后进行遍历输出不就可以了。就像这样:

  File file = new File("G:/kaishengit/");String []names = file.list();if(names != null) {for(String name : names) {FileUtil.getAllFile(name);}}

**可是,如果我们遍历的文件中还包含有文件夹,这个怎么办,那么不着急,我们还有这样一种方法,listFiles() ,可以返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件,返回File对象之后,再进行遍历输出不就好了,多么简单的事情,就像是这样:
File file = new File(“G:/kaishengit/test”);//输出路径下所有文件和文件夹**

        File[] listFile = file.listFiles();for(File list : listFile) {System.out.println(list.getName());if(list.isDirectory()) {String[] names = list.list();for(String name:names) {System.out.println(name);}}}

可是,我们文件夹中的文件中如果还有好几层文件夹,这可怎么办啊,总不能让我一直去判断这个文件是个路径还是个文件,如果是路径,就一直往下走,那不把人写死了,这个时候,递归算法就屌起来了,直接上代码,大概是这样的:

 public static void getAllFile(String path) {File file = new File(path);if(file.isFile()) {System.out.println(file.getAbsolutePath());}else {File[] subFiles = file.listFiles();if(subFiles != null) {for(File files : subFiles) {getAllFile(files.getAbsolutePath());}}}   }测试一下:FileUtil.getAllFile("G:/kaishengit");

这样就实现了简单的递归调用,指定路径下的所有文件就都会遍历输出了。是不是很方便呢。

递归删除文件夹,我自己写了一个版本,可以总是不能完全删除空文件夹。想来逻辑还是有问题,于是就只好google找代码了。。。以下是copy别人的代码,进行简单的注释。

/*** 删除文件夹下所有的文件*/public static void delete(String path){ File f=new File(path); //如果是目录,先递归删除 if(f.isDirectory()){String[] list=f.list(); for(int i=0;i<list.length;i++){ //递归删除目录下的文件 delete(path+"//"+list[i]);} }   //最后删除最外的空文件夹f.delete(); }
···

递归算法遍历文件夹中所有文件递归删除文件夹相关推荐

  1. php删除到回收站代码,怎么找回回收站删除的文件 php自定义函数之递归删除文件及目录...

    复制代码 代码如下: /*------------------ */ //– 递归删除文件及目录 //– 例: del_dir ('../cache/');注意:返回的/是必须的 //– $type ...

  2. java 文件递归删除文件夹_Java十行代码实现递归删除文件夹中所有文件

    递归删除文件夹中所有文件 要递归首先需要有方法.递归,即方法自己调用自己.一般在程序中很少使用,但在这个实现中,我们无法知道文件夹的深度,更无法根据深度来实现循环的嵌套. 递归两个重要条件: 终止边界 ...

  3. Java File类应用:递归遍历文件夹和递归删除文件

    要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...

  4. java递归删除文件夹_如何使用递归删除Java中的目录/文件夹

    java递归删除文件夹 Earlier we learned how to create a file in java and how to delete a file in java. Here w ...

  5. C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件.......

    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...

  6. android 文件 删除文件夹,android 删除文件以及递归删除文件夹

    Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...

  7. android删除文件夹代码,Android_Android递归方式删除某文件夹下的所有文件(.mp3文件等等),1.由于需要删除文件,因此需 - phpStudy...

    Android递归方式删除某文件夹下的所有文件(.mp3文件等等) 1.由于需要删除文件,因此需要如下权限: 2.核心代码 package com.example.deleteyoumi; impor ...

  8. 【python】os模块 递归删除文件夹所有文件 --笔记

    ''' os.environ 获取系统的环境变量 os.name nt -- windows \r\n | posix --- Linux \nos.path:''' import osprint(o ...

  9. asp.net 递归删除文件夹及其子文件夹和所有文件[转]

    删除某文件夹及其所有子文件夹和文件 C#代码 /// <summary> /// 用递归方法删除文件夹目录及文件 /// </summary> /// <param na ...

最新文章

  1. 梯度下降法 —— 经典的优化方法
  2. for循环递减_判断语句_循环语句
  3. Linux 的启动流程
  4. 一个很好学习Mysql网站
  5. 报表没完没了怎么办? | 润乾集算器提效报表开发
  6. .NET系统架构改造的经验和教训
  7. UI设计师一定要懂的专业名词
  8. 数据结构实验 4.括号画家
  9. 简明java_简明 Java 错误处理机制
  10. linux下配置环境变量方式
  11. 解决办法:在查找预编译头使用时跳过
  12. jdom.jar 下载
  13. pc端js在线预览Word、Excel
  14. ubuntu18.04安装nvidia显卡驱动的正确方法
  15. amazon alexa 大陆安装调试
  16. java jbutton 不显示_java JButton显示问题
  17. JavaScript--环视
  18. linux去掉锁屏密码,使用ADB SHELL清除联想A390t的锁屏密码
  19. js中判断两个对象是否相等。
  20. 支付宝微信红包战背后的算盘

热门文章

  1. Word中语音朗读文章的具体操作方法
  2. 使用sed删除拼音的音调
  3. 【Java语言】力扣系列----111. 二叉树的最小深度
  4. uniapp消息推送超详细(从开通uniPush到测试成功)
  5. cron表达式解析 获取N条结果集
  6. 我的开源夏令营--刚刚过去的两个月
  7. 活动预告 | 2023 QCon 全球软件开发大会 - AI 基础架构论坛
  8. 白话空间统计之二十五:空间权重矩阵(四)R语言中的空间权重矩阵(2)
  9. 从零开始把echarts接入到unity中使用
  10. Cmake 安装路径和install 命令解析