java递归删除指定文件夹下所有的文件和文件夹

数据大
• 阅读 5644

直接上代码,方便伸手党ctrl

package com.li.day08;

import java.io.File;
import java.util.Scanner;

/*
 * 删除文件夹及子文件夹所有文件
 */
public class Test10 {
    public static void main(String[] args) {
        //用户输入路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入路径:");
        //创建File对象接收路径
        File file = new File(scanner.nextLine());
        delete(file);
    }

    public static void delete(File file) {
        //判断是否存在此文件
        if (file.exists()) {
            //判断是否是文件夹
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                //判断文件夹里是否有文件
                if (files.length >= 1) {
                    //遍历文件夹里所有子文件
                    for (File file1 : files) {
                        //是文件,直接删除
                        if (file1.isFile()) {
                            file1.delete();
                            System.out.println("成功删除:" + file1.getAbsolutePath());
                        } else {
                            //是文件夹,递归
                            delete(file1);
                        }
                    }
                    //file此时已经是空文件夹
                    file.delete();
                    System.out.println("成功删除:" + file.getAbsolutePath());
                } else {
                    //是空文件夹,直接删除
                    file.delete();
                    System.out.println("成功删除:" + file.getAbsolutePath());
                }
            } else {
                //是文件,直接删除
                file.delete();
                System.out.println("成功删除:" + file.getAbsolutePath());
            }
        } else {
            System.out.println("文件不存在");
        }
    }
}
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
svn本地文件夹断开服务器连接
使用svn进行版本控制,每个文件夹下都有.svn文件夹,有些项目在脱离svn版本控制之后,想删除项目中所有的.svn文件夹,可用下面的方法进行快速删除:建立一个文本文件,取名为killsvnfolders.reg(扩展名由txt改为reg),文件的内容如下:WindowsRegistryEditorVersion5.00
Stella981 Stella981
3年前
Python清空指定文件夹下所有文件的方法
From:https://blog.csdn.net/baoxiao7872/article/details/90340163其他的总结1、remove()同unlink()的功能是一样的在Windows系统中,删除一个正在使用的文件,将抛出异常。在Unix中,目录表中的记录被删除,但文件的存储还在。使用
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
Linux删除用户
删除用户\userdelabc该删除操作将用户删除但保留用户的home文件夹和邮件文件夹。并且当用户abc正在登录的时候,删除操作将失败,如下:\userdelabcuserdel:userabciscurrentlyloggedin如果要删除用户同时删除用户的home文件夹以及邮件文件夹则执行:\user
Wesley13 Wesley13
3年前
ES初体验
ES部署1、安装jdk82、将elasticsearchworkspace文件夹和software文件夹拷贝到linux系统根目录,如果已经存在则删除。3、修改software下elasticsearch1到\3文件夹下config文件夹下elasticsearch.yml文件中所有ip为10.0.6.138为当前环
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Linux系统删除文件夹下所有文件
!(https://oscimg.oschina.net/oscnet/up7d5d4ae17890de6c42fae9460472f704b21.JPEG)这篇文章来为大家介绍一下如何在Linux系统下删除文件,当Linux系统使用时间过长以后,难免会产生一些垃圾文件,这些文件除了会占用磁盘空间之外还会降低系统的运行效率,所以长时间运行后
Wesley13 Wesley13
3年前
ubuntu16.04 git 更新后配置了ssh后却依旧报错
sign\_and\_send\_pubkey:signingfailed:agentrefusedoperationPermissiondenied(publickey).解决方案:1.删除.ssh文件夹下id\_rsa文件2.生成sshkey sshkeygenotrsaC"your.emai
Stella981 Stella981
3年前
Dictionary类 操作文件夹
创建一个控制台应用程序,复制此代码,取消相关所需要的注释即可运行Directory操作文件夹CreateDirectory创建文件夹Delete 删除文件夹Move 剪切文件夹Exist 判断是否存在GetFiles获得指定的目录下所有文件的全路径GetDirectory获得指定目录下所有文件夹的全路径
数据大
数据大
Lv1
今夜月明人尽望,不知秋思落谁家。
文章
2
粉丝
0
获赞
0