现在要求输出一个给定目录中的全部文件的路径。

本程序肯定只能依靠递归的操作完成,因为在一个给定的路径下有可能还是文件夹,那么如果是文件夹的话则肯定要继续列出,重复判断。

递归:程序调用自身的编程技巧

递归就是在方法里调用自身;

在使用递归时,必须有一个明确的递归结束条件,称为递归出口。

练习:列出文件夹下所有文件(包含子文件夹内)

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这个文件夹也没有了

}

}

}

}

最新文章

  1. [虚拟机]Virtual Box的使用--共享文件夹
  2. java16
  3. 《CSS3实战》读书笔记 第三章:选择器:样式实现的标记
  4. .pyc文件是什么?
  5. C++string中有关字符串内容修改和替换的函数浅析
  6. (转)PhoneGap工作原理及需改进的地方
  7. hdu String Problem(最小表示法入门题)
  8. July 23rd, Week 30th Saturday, 2016
  9. HTML&CSS----练习做网页
  10. Android的SoundPool
  11. HTML <base> 标签的 target 属性 —— <base target="_blank" />
  12. Android EditText多行显示及所有属性
  13. PAT 1070. Mooncake (25)
  14. pod install后出现的错误
  15. ios开发必备第三方库
  16. 【iOS】swift 排序Sort函数用法(包含NSDictionary排序)
  17. Hibernate用注解生成表
  18. mysql分组统计以及全部统计union all使用
  19. Shader开发工具: PVRShaman
  20. 如何利用jsp实现防盗链功能

热门文章

  1. Directx11教程(47) alpha blend(4)-雾的实现
  2. UIScrollView 实践经验
  3. day39-Spring 19-今天的内容总结
  4. CoreData遇见iCloud的那些坑
  5. @hdu - 6687@ Rikka with Stable Marriage
  6. 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性
  7. hdu 1561【树形dp+01背包】
  8. 2016 Asia Jakarta Regional Contest L - Tale of a Happy Man UVALive - 7722
  9. JSTL的时间格式化
  10. cocos2d-x 特效集合