java 递归(Recursion)
现在要求输出一个给定目录中的全部文件的路径。
本程序肯定只能依靠递归的操作完成,因为在一个给定的路径下有可能还是文件夹,那么如果是文件夹的话则肯定要继续列出,重复判断。
递归:程序调用自身的编程技巧
递归就是在方法里调用自身;
在使用递归时,必须有一个明确的递归结束条件,称为递归出口。
练习:列出文件夹下所有文件(包含子文件夹内)
package july7file;
//利用递归遍历输出
import java.io.File;
public class Demo2 {
public static void main(String[] args) {
File f = new File("D:/V5");
mylist(f);
}
public static void mylist(File f) {
System.out.println(f);// 先输出一下,因为不能确定接受来的文件是否是文件夹!
if (f.isDirectory()) {
File[] file = f.listFiles();
for (File file2 : file) {
mylist(file2);
}
}
}
}
练习:删除一个目录(注意:要删除目录必须删除目录下的文件和子目录)
package july7file;
import java.io.File;
public class Demo11 {
public static void main(String[] args) {
File f = new File("D:/V5");
deleter(f);
System.out.println("删除成功 !");
}
public static void deleter(File f){//程序简陋,就没有判断空引用!
if(f.isFile()){
f.delete();
}else if(f.isDirectory()){
File []file = f.listFiles();
for (File file2 : file) {
deleter(file2);//调用自身,递归!
file2.delete();//删除子文件夹(内部没有文件的时候可以删除),如果这里写上f.delete();那么V5这个文件夹也没有了
}
}
}
}
最新文章
- [虚拟机]Virtual Box的使用--共享文件夹
- java16
- 《CSS3实战》读书笔记 第三章:选择器:样式实现的标记
- .pyc文件是什么?
- C++string中有关字符串内容修改和替换的函数浅析
- (转)PhoneGap工作原理及需改进的地方
- hdu String Problem(最小表示法入门题)
- July 23rd, Week 30th Saturday, 2016
- HTML&;CSS----练习做网页
- Android的SoundPool
- HTML <;base>; 标签的 target 属性 —— <;base target=";_blank"; />;
- Android EditText多行显示及所有属性
- PAT 1070. Mooncake (25)
- pod install后出现的错误
- ios开发必备第三方库
- 【iOS】swift 排序Sort函数用法(包含NSDictionary排序)
- Hibernate用注解生成表
- mysql分组统计以及全部统计union all使用
- Shader开发工具: PVRShaman
- 如何利用jsp实现防盗链功能
热门文章
- Directx11教程(47) alpha blend(4)-雾的实现
- UIScrollView 实践经验
- day39-Spring 19-今天的内容总结
- CoreData遇见iCloud的那些坑
- @hdu - 6687@ Rikka with Stable Marriage
- 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性
- hdu 1561【树形dp+01背包】
- 2016 Asia Jakarta Regional Contest L - Tale of a Happy Man UVALive - 7722
- JSTL的时间格式化
- cocos2d-x 特效集合