java.io.File实现批量创建,递归目录查询、删除操作

简介: 今天使用java的File类实现了一个简单的创建多层级多维度的文件目录结构结构如下同时使用递归方法实现了文件的遍历查询和全部删除。(核心思想)判断文件是不是目录,如果是目录就进行递归调用,否则直接进行处理。

今天使用java的File类实现了一个简单的创建多层级多维度的文件目录结构
结构如下
image
同时使用递归方法实现了文件的遍历查询和全部删除。
(核心思想)判断文件是不是目录,如果是目录就进行递归调用,否则直接进行处理。
下面看一下代码吧!

import java.io.File;
import java.io.IOException;

/**
 * 
 * @author jjking
 * @version v1.0
 * 
 *          创建时间: 2019年8月28日 下午3:10:27
 *
 */
public class ClassWork01 {

    static final int NUM = 10;

    /**
     *     创建文件夹
     * @param path 要创建的路径
     */
    public static void createFilesAndDirs(String path) {
        File file = new File(path);
        file.mkdir();
        for (int i = 0; i < NUM; i++) {
            File file0 = new File(path +"\\"+ i);
            File file1 = new File(path + "\\" + i + ".txt");
            try {
                file1.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            file0.mkdir();
            for (int j = 0; j < NUM; j++) {
                File f = new File(path + "\\" + i + "\\" + j);
                File f1 = new File(path +"\\" + i + "\\" + j + ".txt");
                f.mkdir();
                try {
                    f1.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    

    /**
     * 递归查看文件和目录
     * 
     * @param path
     */
    public static void showAllFilesAndDirs(String path) {
        File file = new File(path);
        File[] files = file.listFiles();
        for (File file2 : files) {
            if (file2.isDirectory()) {
                System.out.println("目录》》》" + file2);
                showAllFilesAndDirs(file2.toString());
            } else {
                System.out.println("文件》》》" + file2);
            }
        }
    }

    /**
     * 递归删除指定位置内部文件
     * 
     * @param path
     */

    public static void deleteAllInnerFilesAndDirs(String path) {
        File file = new File(path);
        File[] listFiles = file.listFiles();
        for (File f : listFiles) {
            if (f.isFile()) {
                f.delete();
            } else {
                deleteAllFilesAndDirs(f.toString());
                f.delete();
            }
        }
        System.out.println("删除完成!");
    }

    /**
     *     删除指定位置的所有文件
     * 
     * @param path
     */
    public static void deleteAllFilesAndDirs(String path) {
        deleteAllInnerFilesAndDirs(path);
        File file = new File(path);
        file.delete();
    }
}
相关文章
|
3月前
|
SQL Java API
Java一分钟之-JPA查询:JPQL与Criteria API
【6月更文挑战第14天】本文探讨了Java Persistence API (JPA)中的两种查询方式:JPQL和Criteria API。JPQL是面向对象的SQL,适用于简单查询,而Criteria API则提供类型安全的动态查询构造。文章指出了每种方法的常见问题和避免策略,如混淆实体属性与数据库字段、参数绑定错误、过度复杂化和性能问题。建议开发者根据需求选择适当的方法,并关注查询的可读性、可维护性和性能优化。
46 2
|
1月前
|
JavaScript Java
点击按钮,向下添加目录。Java script+jQuery写法
点击按钮,向下添加目录。Java script+jQuery写法
14 1
|
1月前
|
Java
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
这篇文章介绍了Java中使用`renameTo()`、`Files.copy()`等方法对文件进行重命名、移动和复制的操作,并提供了代码实例和测试效果。
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
|
23天前
|
存储 Java API
Java目录
Java目录
12 0
|
2月前
|
算法 Java
java使用递归及迭代方式实现前序遍历 中序遍历 后序遍历 以及实现层序遍历
java使用递归及迭代方式实现前序遍历 中序遍历 后序遍历 以及实现层序遍历
61 7
|
28天前
|
存储 Java API
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率
|
3月前
|
Java
蓝桥杯Java组暴力递归搜图
蓝桥杯Java组暴力递归搜图
28 4
|
3月前
|
Java
java实现斐波那契数列(递归、迭代、流)
java实现斐波那契数列(递归、迭代、流)
|
3月前
|
算法 前端开发 Java
探讨Java中递归构建树形结构的算法
探讨Java中递归构建树形结构的算法
37 1
|
2月前
|
Java
Java 实现 Elasticsearch 查询全部数据
【7月更文挑战第7天】Java 实现 Elasticsearch 查询全部数据