Java读取其下所有文件夹与文件路径的方法

要读取Java程序中某个目录下的所有子目录和文件路径,可以使用以下步骤:

  1. 根据给定目录路径创建一个Java File实例:
File root = new File("dir/path");
  1. 使用Java IO API的File类中listFiles()方法获取指定目录下所有文件和子目录的File对象数组:
File[] files = root.listFiles();
  1. 递归遍历数组,对于每个元素,如果这是一个目录,那么就再次调用he getFilePath方法,进一步遍历这个目录。如果这是一个文件,则将其路径保存在ArrayList中。
public static void getFilePath(File[] files, ArrayList<String> fileList) {
    for (File file : files) {
        if (file.isDirectory()) {
            getFilePath(file.listFiles(), fileList);
        } else {
            fileList.add(file.getAbsolutePath());
        }
    }
}

在上述代码中,我们首先判断当前的文件是否为目录,如果是的话则递归调用自己处理其下一级目录;否则,将其路径添加到列表中。

下面是一个完整的示例,它可以打印出指定目录(/home/user/dir)下所有文件和子目录的路径:

import java.io.File;
import java.util.ArrayList;

public class ListFiles {
    public static void main(String[] args) {
        File root = new File("/home/user/dir");
        ArrayList<String> fileList = new ArrayList<String>();
        getFilePath(root.listFiles(), fileList);

        // 打印文件和目录路径列表
        for (String path : fileList) {
            System.out.println(path);
        }
    }

    public static void getFilePath(File[] files, ArrayList<String> fileList) {
        for (File file : files) {
            if (file.isDirectory()) {
                getFilePath(file.listFiles(), fileList);
            } else {
                fileList.add(file.getAbsolutePath());
            }
        }
    }
}

输出结果如下:

/home/user/dir/file1.txt
/home/user/dir/file2.txt
/home/user/dir/subdir1
/home/user/dir/subdir2/file3.txt
/home/user/dir/subdir3/file4.txt

另外一个示例是,对于特定的文件类型(例如,仅列出.jpg和.png文件),我们可以在遍历时添加条件判断:

import java.io.File;
import java.util.ArrayList;

public class ListSelectedFiles {
    public static void main(String[] args) {
        File root = new File("/home/user/pics");
        ArrayList<String> fileList = new ArrayList<String>();
        getFilePath(root.listFiles(), fileList);

        // 打印文件和目录路径列表
        for (String path : fileList) {
            System.out.println(path);
        }
    }

    public static void getFilePath(File[] files, ArrayList<String> fileList) {
        for (File file : files) {
            if (file.isDirectory()) {
                getFilePath(file.listFiles(), fileList);
            } else {
                String fileName = file.getName();
                if (fileName.endsWith(".jpg") || fileName.endsWith(".png")){
                    fileList.add(file.getAbsolutePath());
                }
            }
        }
    }
}

输出结果是,仅列出.jpg和.png文件的路径:

/home/user/pics/pic1.jpg
/home/user/pics/pic2.jpg
/home/user/pics/pic3.png

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java读取其下所有文件夹与文件路径的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java 数据类型及类型转换的互相转换实例代码

    Java 是一门类型安全的编程语言,它的数据类型主要分为原始数据类型和引用数据类型两大类。其中,原始数据类型又可以分为四种整型、两种浮点型、一种字符型和一种布尔型。同时,Java 还提供了一些类型转换的工具类和语法来实现数据类型之间的转换。 一、Java 原始数据类型 Java 原始数据类型主要包括 byte、short、int、long、float、dou…

    Java 2023年5月26日
    00
  • 如何安装jdk及安装MyEclipse的图文教程

    下面是如何安装JDK及MyEclipse的图文教程。 安装JDK JDK(Java Development Kit)是开发和运行Java应用程序所必需的软件开发工具包。在安装MyEclipse之前,需要先安装JDK,以下是安装步骤: 第一步:下载JDK 首先,前往Oracle官方网站下载JDK安装文件,网址是 http://www.oracle.com/te…

    Java 2023年5月26日
    00
  • java中流的使用

    Java中流(Stream)是一种I/O操作的方式,允许我们按照字节或者字符的方式读/写数据。使用流的好处在于不需要将整个文件读入内存中进行操作,而是可以逐个字节或者逐个字符的处理数据,更加高效和灵活。 流的分类 Java中的流分为输入流和输出流两种基本类型。其中,输入流用于读取数据,输出流用于写数据。 输入流 输入流用于读取数据,可以分为字节输入流和字符输…

    Java 2023年5月26日
    00
  • 2020年最新版Java面试题大全

    2020年最新版Java面试题大全 完整攻略 简介 Java 是非常热门的编程语言,许多公司招聘时也会优先考虑 Java 开发人员。而 Java 面试的难度也不容小觑,需要对 Java 语言及其相关技术有深入了解。本文将介绍一些主要的 Java 面试题,以及回答这些问题的攻略。 面试题 Q1:Java中的数据类型有哪些? Java 中的数据类型主要包括基本数…

    Java 2023年5月30日
    00
  • Spring AOP面向切面编程实现及配置详解

    一、Spring AOP概述Spring AOP是一个基于Spring框架的面向切面编程的实现,通过在不改变原有业务逻辑的情况下,对主要逻辑进行增强,实现更灵活,更可维护的代码。 二、实现步骤1. 添加依赖在pom.xml文件中添加spring-aop和aspectjweaver的依赖。 <dependencies> <dependency…

    Java 2023年5月20日
    00
  • 使用Docker部署Spring Boot的方法示例

    请先阅读以下关于“使用Docker部署Spring Boot的方法示例”的完整攻略: 1. 准备工作 要使用Docker来部署你的Spring Boot应用程序,你需要以下几个组件: Docker Engine Docker Compose Spring Boot应用程序的可执行jar文件 Dockerfile 安装Docker Engine 最新版本的Do…

    Java 2023年5月20日
    00
  • Tomcat配置https SSL证书的项目实践

    Tomcat配置https SSL证书的项目实践 在Web应用程序中添加SSL证书是提高安全性的一种重要方法。Tomcat是一个流行的Java Web服务器,它可以通过配置https SSL证书来提供安全的访问。 什么是SSL证书? SSL(Secure Socket Layer)证书是一种用于保护Web通信的数字证书。它通过加密网站和用户之间的数据传输来确…

    Java 2023年6月2日
    00
  • Java标识接口的使用方法

    Java标识接口是一种没有成员的接口,其存在的唯一目的是将接口实现类标识为一种特定的类型。本篇攻略将为您详细介绍Java标识接口的使用方法。 什么是Java标识接口? Java标识接口是一种特殊的接口,其定义了一个接口实现类属于一个特定类型的语义,而不是定义了一个接口实现类需要提供什么方法。因此,标识接口中不包含任何方法。 Java标识接口的作用 Java标…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部