#博学谷IT学习技术支持#

首先我们看下File类的listFiles()的源码:

 public File[] listFiles() {String[] ss = list();  //用ss存放子文件名if (ss == null) return null;  //若为空则返回nullint n = ss.length;File[] fs = new File[n];//循环添加子文件for (int i = 0; i < n; i++) {fs[i] = new File(ss[i], this);}return fs;}

listFiles()返回的是File数组,所以拿到返回值后需要遍历,考虑到并非是单层文件夹所以自然而然想到递归:

package com.hmi.io;import java.io.File;public class FileTest {/*** 展示path下所有文件路径* * @param path*/public static void showFiles(String path) {File fl = new File(path);// 判断path是否为文件夹if (fl.isDirectory()) {// 若path是文件夹则通过递归遍历输出文件路径File[] files = fl.listFiles();/** 防止对于某些文件夹,因为用户没有访问权限而导致 java.lang.NullPointerException错误* ,所以首先需判断文件夹是否为空,然后再进行递归遍历*/if (files != null) {for (File file : files) {showFiles(file.getPath());}}} else {System.out.println(fl.getPath());}}public static void main(String[] args) {// FileTest.showFiles("F:\\");FileTest.showFiles("F:\\images");}
}

需要注意的是对于某些文件夹,用户没有访问权限,所以遍历前判断是否为空就至关重要,否则会报空指针错误

输出结果:

Java 通过File类的listFiles()遍历文件夹相关推荐

  1. java中File类应用:遍历文件夹下所有文件

    练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件;import java.io.File;public class Test {public sta ...

  2. java基础 - file类(递归遍历目录)

    JAVA SE 基础练习--file类方法练习 遍历所有对象 f:/test/111.txt /aa.txt /aa/aaa.txt 找出所有文件 和路径 显示结果要求: f:/test/111.tx ...

  3. Java之File类

    一.初见File类 java.io.File类代表系统中的文件(文件或目录) 常用构造方法 File(String pathname) File(String parent, String child ...

  4. 利用java.io.File类实现遍历本地磁盘上指定盘符或文件夹的所有的文件

    2016-11-18 这是本人的第一篇随笔博客,纠结了半天还是选择自己学的时候比较用心的一些知识点上.利用java.io.File类指定本地的文件夹进行遍历所有的文件. package org.lxm ...

  5. Java File类应用:递归遍历文件夹和递归删除文件

    要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...

  6. JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)

    该篇博客目录 1.Map接口及其常用实现类(HashMap.Hashtable) 2.File类(概述.创建.删除.重命名.文件属性读取/设置.遍历文件夹) 一.Map接口及其常用实现类(HashMa ...

  7. java中File类中list()和listFiles()方法区别

    list()和listFiles()方法区别: 1.返回值类型不同:前者为String数组,后者为File对象数组 2.数组中元素内容不同:前者为string类型的[文件名](包含后缀名),后者为Fi ...

  8. File类遍历(文件夹)目录功能

    package com.learn.demo01.File;import java.io.File;/*File类遍历(文件夹)目录功能- public String[] list() :返回一个St ...

  9. 关于Java里面File类创建txt文件重复???

    private JButton getOpenButton() {if (openButton == null) {openButton = new JButton();openButton.setT ...

最新文章

  1. 自动机器学习(AutoML)
  2. Swift3.0带来的变化汇总
  3. python中文昵称-python实例pyspark以及python中文显示
  4. 存储过程系列之调试存储过程 SQL Server 2005
  5. linux php环境搭建_PHP-小程序:(1)开发环境搭建
  6. HBase Shell 基本操作
  7. play 连接mysql_Play framework 2.x 连接mysql | 学步园
  8. crc算法java_c语言的crc16算法转java
  9. python的底层实现,Python封装底层实现原理详解(通俗易懂)
  10. 联想网络同传系统用户手册(联想EDU应用用户手册)[联想硬盘保护,联想网络控制工具]
  11. BXP3.0安装指南(传统方法)(转)
  12. 数字信号处理:MATLAB实验代码整理
  13. 面向对象的15位、18位中国大陆身份证号码解析、验证工具
  14. Xshell连接远程堡垒机【服务器】
  15. ltv价值 应用_手游LTV(用户终生价值)计算公式
  16. C++第33课--C++中的字符串类
  17. Angular 入门教程系列:39:使用ng-alain进行开发
  18. 2022-08-18 mysql/stonedb-aggregate场景group by分析
  19. JAVA-SUST实验二 JavaBean组件程序设计
  20. 房地产基础知识!!!

热门文章

  1. 天意U盘维护系统1.8无法用Ultroiso制作
  2. UltraISO制作启动盘及提取U盘为ISO镜像
  3. “早起打卡赚钱”频繁爆雷 京东美团引流模式被诈骗团队玩坏了!
  4. miniUI 使用 mini.open 传输数据到 新页面
  5. 忆阻器制成神经网络更高效
  6. 【张尧学与一等奖】有争论才是正常的科学
  7. 波分复用OADM在本地网中的应用
  8. 澜起科技发布业界首款DDR5第三子代寄存时钟驱动器工程样片
  9. FL Studio20.9中文语言水果软件
  10. Corel Painter 11的余温还没有过呢,Corel Painter 12就发布了,Corel 公司真是太有速度了。小猪我也是刚刚听朋友说Corel Painter 12发布一个月了。Core