怎么写 java 递归?解决删除文件夹以及子文件

我最近做的java文档管理里面遇到的一个问题,怎么样?当文件夹里含有文件,删除文件夹,同时把里面的文件一起删除。怎么用递归写?????... 我最近做的java文档管理里面遇到的一个问题,怎么样?当文件夹里含有文件,删除文件夹,同时把里面的文件一起删除。怎么用递归写????? 展开
 我来答
bai_lj
2011-10-13 · TA获得超过276个赞
知道小有建树答主
回答量:505
采纳率:77%
帮助的人:284万
展开全部
import java.util.Scanner;
import java.io.*;

public class Del {

/**
* @删除文件或文件夹 chsNight
*/

public static String adders;

public static void main(String[] args) throws IOException {

Scanner input = new Scanner(System.in);
System.out.print("请输入要删除的文件地址:");
adders = input.next();
System.out.print("确定删除?(Y/N):");
String sfdel = input.next();
while (sfdel.equalsIgnoreCase("y")) {
del(adders);
break;
}
}

private static void del(String adders) {
File file = new File(adders);
if (file.isFile() == true) { // 如果是文件,直接删除
file.delete();
jg();
} else if (file.isDirectory() == true) { // 如果是文件夹
if (file.listFiles().length == 0) { // 如果是空文件夹
file.delete();
jg();
} else {
int zfiles = file.listFiles().length; // 子文件数量
File[] delfile = file.listFiles(); // 子文件路径
for (int i = 0; i < zfiles; i++) {
if (delfile[i].isDirectory()) {
del(delfile[i].getAbsolutePath()); // 递归调用del方法并取得子目录路径
}
System.out.println(delfile[i]);
delfile[i].delete();
}
file.delete();
jg();
}
} else {
System.out.println("删除失败:不存在该对象!");
}
}

public static void jg() {
System.out.println("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("\n" + adders + "删除成功!");
}

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式