Java 通过File类的listFiles()遍历文件夹
#博学谷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()遍历文件夹相关推荐
- java中File类应用:遍历文件夹下所有文件
练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件;import java.io.File;public class Test {public sta ...
- java基础 - file类(递归遍历目录)
JAVA SE 基础练习--file类方法练习 遍历所有对象 f:/test/111.txt /aa.txt /aa/aaa.txt 找出所有文件 和路径 显示结果要求: f:/test/111.tx ...
- Java之File类
一.初见File类 java.io.File类代表系统中的文件(文件或目录) 常用构造方法 File(String pathname) File(String parent, String child ...
- 利用java.io.File类实现遍历本地磁盘上指定盘符或文件夹的所有的文件
2016-11-18 这是本人的第一篇随笔博客,纠结了半天还是选择自己学的时候比较用心的一些知识点上.利用java.io.File类指定本地的文件夹进行遍历所有的文件. package org.lxm ...
- Java File类应用:递归遍历文件夹和递归删除文件
要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...
- JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)
该篇博客目录 1.Map接口及其常用实现类(HashMap.Hashtable) 2.File类(概述.创建.删除.重命名.文件属性读取/设置.遍历文件夹) 一.Map接口及其常用实现类(HashMa ...
- java中File类中list()和listFiles()方法区别
list()和listFiles()方法区别: 1.返回值类型不同:前者为String数组,后者为File对象数组 2.数组中元素内容不同:前者为string类型的[文件名](包含后缀名),后者为Fi ...
- File类遍历(文件夹)目录功能
package com.learn.demo01.File;import java.io.File;/*File类遍历(文件夹)目录功能- public String[] list() :返回一个St ...
- 关于Java里面File类创建txt文件重复???
private JButton getOpenButton() {if (openButton == null) {openButton = new JButton();openButton.setT ...
最新文章
- 自动机器学习(AutoML)
- Swift3.0带来的变化汇总
- python中文昵称-python实例pyspark以及python中文显示
- 存储过程系列之调试存储过程 SQL Server 2005
- linux php环境搭建_PHP-小程序:(1)开发环境搭建
- HBase Shell 基本操作
- play 连接mysql_Play framework 2.x 连接mysql | 学步园
- crc算法java_c语言的crc16算法转java
- python的底层实现,Python封装底层实现原理详解(通俗易懂)
- 联想网络同传系统用户手册(联想EDU应用用户手册)[联想硬盘保护,联想网络控制工具]
- BXP3.0安装指南(传统方法)(转)
- 数字信号处理:MATLAB实验代码整理
- 面向对象的15位、18位中国大陆身份证号码解析、验证工具
- Xshell连接远程堡垒机【服务器】
- ltv价值 应用_手游LTV(用户终生价值)计算公式
- C++第33课--C++中的字符串类
- Angular 入门教程系列:39:使用ng-alain进行开发
- 2022-08-18 mysql/stonedb-aggregate场景group by分析
- JAVA-SUST实验二 JavaBean组件程序设计
- 房地产基础知识!!!
热门文章
- 天意U盘维护系统1.8无法用Ultroiso制作
- UltraISO制作启动盘及提取U盘为ISO镜像
- “早起打卡赚钱”频繁爆雷 京东美团引流模式被诈骗团队玩坏了!
- miniUI 使用 mini.open 传输数据到 新页面
- 忆阻器制成神经网络更高效
- 【张尧学与一等奖】有争论才是正常的科学
- 波分复用OADM在本地网中的应用
- 澜起科技发布业界首款DDR5第三子代寄存时钟驱动器工程样片
- FL Studio20.9中文语言水果软件
- Corel Painter 11的余温还没有过呢,Corel Painter 12就发布了,Corel 公司真是太有速度了。小猪我也是刚刚听朋友说Corel Painter 12发布一个月了。Core