递归算法遍历文件夹中所有文件递归删除文件夹
- 引言:怎样才能遍历出一个文件夹中的所有文件呢,我们知道,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(); }
···
递归算法遍历文件夹中所有文件递归删除文件夹相关推荐
- php删除到回收站代码,怎么找回回收站删除的文件 php自定义函数之递归删除文件及目录...
复制代码 代码如下: /*------------------ */ //– 递归删除文件及目录 //– 例: del_dir ('../cache/');注意:返回的/是必须的 //– $type ...
- java 文件递归删除文件夹_Java十行代码实现递归删除文件夹中所有文件
递归删除文件夹中所有文件 要递归首先需要有方法.递归,即方法自己调用自己.一般在程序中很少使用,但在这个实现中,我们无法知道文件夹的深度,更无法根据深度来实现循环的嵌套. 递归两个重要条件: 终止边界 ...
- Java File类应用:递归遍历文件夹和递归删除文件
要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...
- java递归删除文件夹_如何使用递归删除Java中的目录/文件夹
java递归删除文件夹 Earlier we learned how to create a file in java and how to delete a file in java. Here w ...
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件.......
本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...
- android 文件 删除文件夹,android 删除文件以及递归删除文件夹
Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...
- android删除文件夹代码,Android_Android递归方式删除某文件夹下的所有文件(.mp3文件等等),1.由于需要删除文件,因此需 - phpStudy...
Android递归方式删除某文件夹下的所有文件(.mp3文件等等) 1.由于需要删除文件,因此需要如下权限: 2.核心代码 package com.example.deleteyoumi; impor ...
- 【python】os模块 递归删除文件夹所有文件 --笔记
''' os.environ 获取系统的环境变量 os.name nt -- windows \r\n | posix --- Linux \nos.path:''' import osprint(o ...
- asp.net 递归删除文件夹及其子文件夹和所有文件[转]
删除某文件夹及其所有子文件夹和文件 C#代码 /// <summary> /// 用递归方法删除文件夹目录及文件 /// </summary> /// <param na ...
最新文章
- 梯度下降法 —— 经典的优化方法
- for循环递减_判断语句_循环语句
- Linux 的启动流程
- 一个很好学习Mysql网站
- 报表没完没了怎么办? | 润乾集算器提效报表开发
- .NET系统架构改造的经验和教训
- UI设计师一定要懂的专业名词
- 数据结构实验 4.括号画家
- 简明java_简明 Java 错误处理机制
- linux下配置环境变量方式
- 解决办法:在查找预编译头使用时跳过
- jdom.jar 下载
- pc端js在线预览Word、Excel
- ubuntu18.04安装nvidia显卡驱动的正确方法
- amazon alexa 大陆安装调试
- java jbutton 不显示_java JButton显示问题
- JavaScript--环视
- linux去掉锁屏密码,使用ADB SHELL清除联想A390t的锁屏密码
- js中判断两个对象是否相等。
- 支付宝微信红包战背后的算盘