您的位置:首页 > 其它

递归删除文件

2020-01-15 11:55 363 查看

递归删除文件

package com.file.exer;

import java.io.File;

// 从键盘输入一个目录路径,删除该目录及子目录下所有文件。
public class Exercise04 {
public static void main(String[] args) {
File dir = new File("d:\\zz");
recursionDeleteFile(dir);
System.out.println("删除成功。");
}
// 递归删除文件
private static void recursionDeleteFile(File dir) {
if (!dir.exists()) return;
// 判断是否为目录
if (dir.isDirectory()) {
// 获取目录下所有文件和目录
File[] files = dir.listFiles();
// 循环处理
for(File file : files) {
if (file.isFile()) {
// 如果是文件,直接删除
file.delete();
} else {
recursionDeleteFile(file);
}
}
}
// 删除空目录
dir.delete();
}
}

递归显示文件或目录名称

package com.file.exer;

import java.io.File;

// 1、迭代显示指定路径下的所有文件或目录,包括子目录。
public class Exercise01 {
public static void main(String[] args) {
File dir = new File("d:\\zz");
recursion(dir, 0);
}

// 作用:根据目录层级来生成空格
private static String buidSpace(int num) {
String str = "";
for (int i = 0; i < num; i++) {
str += "\t";
}
return str;
}

// 递归算法:递归核心就是自己调用自己,但必须有出口
private static void recursion(File dir, int num) {
// 显示文件或目录名称
System.out.println(buidSpace(num) + dir.getName());
num = num + 1;
// 判断是否为目录
if (dir.isDirectory()) {
// 显示目录下所有文件或目录
File[] files = dir.listFiles();
for(File file : files) {
// 判断是否为目录,如果是则进入该目录
if (file.isDirectory()) {
// 递归调用
recursion(file, num);
} else {
System.out.println(buidSpace(num) + file.getName());
}
}
}
}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
一梦如意 发布了92 篇原创文章 · 获赞 1 · 访问量 1046 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: