java打印出每个文件夹里的所有文件名

devtools/2025/2/11 6:57:15/

在 Java 中,若要打印出每个文件夹里的所有文件名,可以使用递归方法来遍历文件夹及其子文件夹。下面将分别介绍使用传统的 java.io 包和 Java 7 引入的 java.nio.file 包来实现该功能。

使用 java.io 包实现

java">import java.io.File;public class PrintFilesInDirectory {public static void main(String[] args) {// 指定要遍历的文件夹路径String directoryPath = "your_directory_path";File directory = new File(directoryPath);if (directory.exists() && directory.isDirectory()) {printFiles(directory);} else {System.out.println("指定的路径不是一个有效的文件夹。");}}public static void printFiles(File directory) {// 获取该文件夹下的所有文件和文件夹File[] files = directory.listFiles();if (files != null) {for (File file : files) {if (file.isDirectory()) {// 如果是文件夹,则递归调用 printFiles 方法继续遍历printFiles(file);} else {// 如果是文件,则打印文件名System.out.println(file.getAbsolutePath());}}}}
}
代码解释

  1. main 方法:首先指定要遍历的文件夹路径,创建 File 对象,检查该路径是否为有效的文件夹。若有效,则调用 printFiles 方法开始遍历。
  2. printFiles 方法:使用 listFiles 方法获取指定文件夹下的所有文件和文件夹。对于每个子项,判断其是否为文件夹,若是则递归调用 printFiles 方法;若为文件,则打印其绝对路径。

使用 java.nio.file 包实现

java">import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;public class PrintFilesUsingNio {public static void main(String[] args) {// 指定要遍历的文件夹路径Path directory = Paths.get("your_directory_path");try {Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {@Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {// 打印文件的绝对路径System.out.println(file.toAbsolutePath());return FileVisitResult.CONTINUE;}});} catch (IOException e) {e.printStackTrace();}}
}
代码解释

  1. main 方法:指定要遍历的文件夹路径,创建 Path 对象。使用 Files.walkFileTree 方法遍历文件夹树。
  2. SimpleFileVisitor 类:重写 visitFile 方法,当访问到文件时,打印其绝对路径,并返回 FileVisitResult.CONTINUE 表示继续遍历。

注意事项

  • 将 "your_directory_path" 替换为你实际要遍历的文件夹路径。
  • 在使用 java.io 包时,listFiles 方法可能返回 null,需要进行空值检查。
  • 在使用 java.nio.file 包时,需要处理可能抛出的 IOException

http://www.ppmy.cn/devtools/157857.html

相关文章

全志T527 音频适配

移植tlv320aic3111音频驱动 1.第一步,修改dts设备树,在设备树中添加有关音频芯片的硬件资源。因为板子跟音频芯片采用的twin连接,tlv320aic31xx节点地址为18,在twi中添加如下信息 tlv320aic31xx: tlv320aic31xx@18 { #sound-dai-cells = <0>; …

【网络法医】Docker取证

【网络法医】Docker取证 1.docker变更记录取证2.docker镜像取证3.工具取证 1.docker变更记录取证 如果怀疑docker容器被破坏。例如如下wordpress容器&#xff1a; docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS …

Java项目: 基于SpringBoot+mybatis+maven+mysql实现的智能学习平台管理系(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenmysql实现的智能学习平台管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、…

2. 4 模块化JDK:JDK模块结构与核心模块

第3章&#xff1a;模块化JDK&#xff1a;JDK模块结构与核心模块 JDK 9 将自身拆分为一系列模块&#xff0c;彻底告别传统的“单一JAR&#xff08;如 rt.jar&#xff09;”模式。本章深入解析 JDK 的模块化架构、核心模块功能及开发者如何高效利用这些模块。 3.1 JDK 模块化设计…

【通俗易懂说模型】反向传播(附多元分类与Softmax函数)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …

【多模态大模型】系列3:语义分割(LSeg、GroupViT)

目录 1 LSeg2 Group ViT 1 LSeg LANGUAGE-DRIVEN SEMANTIC SEGMENTATION LSeg是第一篇将CLIP应用于语义分割的论文。它的分割的效果拔群&#xff0c;容错能力也很高&#xff1a; 模型总览图跟CLIP很像&#xff1a; 对于图像链路&#xff1a;输入一张图片&#xff0c;进入分割…

鸿蒙NEXT开发-鸿蒙三方库

基本介绍 三方库是开发者在系统能力的基础上进行了一层具体功能的封装&#xff0c;对其能力进行拓展&#xff0c;提供更加方便的接口&#xff0c;提升开发效率的工具。 我们在之前的课程中学习过如何安装三方库axios了&#xff0c;我们大家可以通过ohpm install ohos/axios进行…

变化检测论文阅读合集

1. ChangeCLIP: Remote sensing change detection with multimodal vision-language representation learning 作者&#xff1a;Sijun Dong a, Libo Wang b, Bo Du c, Xiaoliang Meng a,* 年份&#xff1a;2024 研究方法/模型&#xff1a; 重构原始CLIP&#xff1a;提取双时…