Java 获取指定目录下的所有文件和目录

2年前 (2022) 程序员胖胖胖虎阿
239 0 0

Java 获取指定目录下的所有文件和目录


前言

本片我将为大家讲解如何获取用户输入的文件路径,获取指定路径以及路径下所有的文件和目录,而且可以统计文件和目录的数量。


提示:以下是本篇文章正文内容,下面案例可供参考

一、主要的类

  • 其实涉及到文件和目录,一般都是与Java的IO类相关的,但是本章却没有涉及到IO,而是涉及到了另一个类File。他可以对我们的文件和目录进行管理。
  • java.io.File类主要用于描述文件或目录路径的抽象表示信息,可以获取文件或目录的特征信息,如:大小等。

二、实现代码

2.1 首先我们可以先在类中中写一个主函数main,然后将查询所有文件和目录的代码单独提炼出来,写成一个方法,在main中调用。

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

/**
 * @author 云梦归遥
 * @date 2021/11/24 11:26
 * @description 获取指定路径下所有的文件,包括子目录中的所有嵌套目录和文件,而且统计文件和目录的数量。
 */
public class FileTest {
    public static void main(String[] args) {

        System.out.println("请输入你想要查询的文件路径:");
        Scanner sc = new Scanner(System.in);
        // 如果文件路径名有空格会发生异常,需要使用 nextLine 去获取输入的内容
        String pathName = sc.nextLine();
        System.out.println(pathName);
        File file = new File(pathName);
        System.out.println("当前路径的文件是否存在:" + file.exists());
        System.out.println("文件名称:" + file.getName());
        System.out.println("文件的长度:" + file.length());
        System.out.println("文件最后一次修改的时间:" + file.lastModified());
        System.out.println("文件的绝对路径:" + file.getAbsolutePath());
        System.out.println("=============================");
    }
}

2.2 然后我们开始写查询展示所有文件和目录的方法

  • 在这里我们也用到了递归的思想,每次总是传入一个 File类型的参数作为我们要遍历的对象(这是根据方法内部的条件判断判断出来的,实际上是一个目录)
  • 除此之外,两个成员变量也是帮助我们分别进行统计文件数量和目录数量的。
public static void show(File file) {
        File[] files = file.listFiles();
        if (null != files) {
            for (int i = 0; i < files.length; i++) {
                String result = files[i].isFile()? "一个文件": "一个目录";
                System.out.println(files[i] + "\t" + result);
                if ("一个目录".equals(result)) {
                    FileTest.directoryNum++;
                    show(files[i]);
                } else {
                    FileTest.fileNum++;
                }
            }
        }
    }

2.3最终代码

  • 在main方法中进行调用 方法,然后代码就可以顺利的执行了
import java.io.File;
import java.util.Arrays;
import java.util.Scanner;

/**
 * @author 云梦归遥
 * @date 2021/11/24 11:26
 * @description 获取指定路径下所有的文件,包括子目录中的所有嵌套目录和文件,而且统计文件和目录的数量。
 */
public class FileTest {
    public static int fileNum = 0;
    public static int directoryNum = 0;

    public static void show(File file) {
        File[] files = file.listFiles();
        if (null != files) {
            for (int i = 0; i < files.length; i++) {
                String result = files[i].isFile()? "一个文件": "一个目录";
                System.out.println(files[i] + "\t" + result);
                if ("一个目录".equals(result)) {
                    FileTest.directoryNum++;
                    show(files[i]);
                } else {
                    FileTest.fileNum++;
                }
            }
        }
    }

    public static void main(String[] args) {

        System.out.println("请输入你想要查询的文件路径:");
        Scanner sc = new Scanner(System.in);
        // 如果文件路径名有空格会发生异常,需要使用 nextLine 去获取输入的内容
        String pathName = sc.nextLine();
        System.out.println(pathName);
        File file = new File(pathName);
        System.out.println("当前路径的文件是否存在:" + file.exists());
        System.out.println("文件名称:" + file.getName());
        System.out.println("文件的长度:" + file.length());
        System.out.println("文件最后一次修改的时间:" + file.lastModified());
        System.out.println("文件的绝对路径:" + file.getAbsolutePath());
        System.out.println("=============================");
        // 循环遍历当前目录下所有的文件,包括子目录中的所有文件
        show(file);
        System.out.println("=============================");
        System.out.println("总计:文件数量:" + FileTest.fileNum + "; 目录数量:" + FileTest.directoryNum);
    }
}

三,运行结果的展示,截图

  • 输入要进行查询的文件路径

Java 获取指定目录下的所有文件和目录

  • 输出的结果

Java 获取指定目录下的所有文件和目录

  • 真实的目录情况
  • Java 获取指定目录下的所有文件和目录

版权声明:程序员胖胖胖虎阿 发表于 2022年9月27日 上午2:40。
转载请注明:Java 获取指定目录下的所有文件和目录 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...