JAVA-基础(查找文件夹内文件)

1.目的?

查找指定文件夹内的文件。以查询.txt结尾的文件为例。

2.分析?

目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。

遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。

3.代码实现?

 1 public class DiGuiDemo4 {
 2     public static void main(String[] args) {
 3         File dir = new File("D:\\aaa");
 4         printDir2(dir);
 5     }
 6
 7     public static void printDir2(File dir) {
 8           // 匿名内部类方式,创建过滤器子类对象
 9         File[] files = dir.listFiles(new FileFilter() {
10             @Override
11             public boolean accept(File pathname) {
12                 return pathname.getName().endsWith(".txt")||pathname.isDirectory();
13             }
14         });
15           // 循环打印
16         for (File file : files) {
17             if (file.isFile()) {
18                 System.out.println("文件名:" + file.getAbsolutePath());
19             } else {
20                 printDir2(file);
21             }
22         }
23     }
24 }   

4.解释?

File dir = new File("D:\\aaa");创建一个文件对象。listFiles方法作用是遍历File dir文件夹内的文件和文件夹。所以返回的值为数组。FileFilter是一个接口,是File的过滤器。 该接口的对象可以传递给File类的listFiles(FileFilter) 作为参数, 接口中只有一个方法。boolean accept(File pathname) :测试pathname是否应该包含在当前File目录中,符合则返回true。接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。accept方法,参数为File,表示当前File下所有的子文件和子目录。保留住则返回true,过滤掉则返回false。保留规则:要么是.txt文件。要么是目录,用于继续遍历。通过过滤器的作用,listFiles(FileFilter)返回的数组元素中,子文件对象都是符合条件的,可以直接打印。
pathname.getName().endsWith(".txt")||pathname.isDirectory()。判断名字后缀是否是.txt的或者是不是文件夹。


 

转载于:https://www.cnblogs.com/fan123yh/p/11017254.html

JAVA-基础(查找文件夹内文件)相关推荐

  1. Java获取文件大小,文件夹内文件个数的工具类

    package cn.edu.hactcm.cfcms.utils; import java.io.File; import java.io.FileInputStream; import java. ...

  2. java 文件大小统计工具类_Java获取文件大小,文件夹内文件个数的工具类

    package cn.edu.hactcm.cfcms.utils; import java.io.File; import java.io.FileInputStream; import java. ...

  3. python 文件操作 os 如何检索文件夹内文件数量

    参考文章1:python os获取文件夹中文件夹内文件的数量,保存为CSV文件 参考文章2:用python计算大文件夹下小文件夹里文件的个数

  4. 文件夹修改名字 matlab,matlab用 movefile更改文件夹内文件名字

    %超简单,利用matlab自带函数movefile(旧名,新名)更改文件夹内文件名字,可以是改一个或多个文件 clc clear dir1 = 'D:\workplace\新程序实验'; %选择数据所 ...

  5. Python:获取文件夹内 文件夹 和 文件数量

    path = 'C:/Users/Dell/Desktop/test' print('dirnum:',len([lists for lists in os.listdir(path) if os.p ...

  6. php过去文件夹总数,用php获取文件夹内文件的数量

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 用php获取指定文件夹内文件的数量: 用PHP读取一个文件夹内有多少个文件,例如有一个Picture文件夹,里面有200张 ...

  7. bat 文件夹内文件批量重命名

    文件夹内文件批量重命名,示例如下: chcp 65001 @echo off set /p w=请输入文件格式(即扩展名并以回车结束): ::set /p wf=请输入要修改的文字(以回车结束): s ...

  8. shell脚本读取文件夹内文件名称

    shell脚本读取文件夹内文件名称代码如下: 1.配置文件: readFilePath=/wocloud/soft/tomcat/selfYearAppraiseTomcat/selfYearAppr ...

  9. 深度学习文件处理系列(一)——统一为文件夹内文件添加前缀

    专栏介绍 这个专栏旨在分享我在进行深度学习算法前的一些脚本文件.包括一些常见的处理,如将单通道图片改为三通道.统一图片格式.将标签进行统一设置方便查找等等. 为文件夹内的文件添加前缀 在进行算法训练前 ...

最新文章

  1. Android应用程序消息处理机制(Looper、Handler)分析(2)
  2. python控制苹果手机触摸屏失灵怎么办_iphone触摸屏失灵怎么办 iphone触摸屏失灵解决办法【详解】...
  3. krpano·分组图片地图插件
  4. Retrofit+RxJava
  5. String类为什么是final的
  6. Java多线程:乐观锁、悲观锁、自旋锁
  7. Retrofit的简单使用
  8. Leedcode8-reorder-list
  9. 【Trie】[CQOI2016]路由表
  10. mysql内置时间函数大全_MySQL 的时间函数 大全
  11. java建议:避免使用终结方法
  12. Swing学习笔记1-----Swing组件类的层次
  13. 计算机管理服务重置网络,重置网络命令需要管理员身份
  14. html5二维动画教程,Flash二维动画制作案例教程
  15. android usb触摸驱动,Linux/Android——usb触摸屏驱动 - usbtouchscreen
  16. PostgresSQL弱密码导致命令执行
  17. 利用泰勒展开式实现sin(x),cos(x)函数
  18. 前端面试题(带答案)
  19. eMMC mmcblk0boot0
  20. 暴走英雄坛服务器维护到什么时候,暴走英雄坛在4月25日更新了什么 最新维护内容介绍...

热门文章

  1. java 多线程缓存_[Java教程]【JAVA并发编程实战】12、使用condition实现多线程下的有界缓存先进先出队列...
  2. css3 下边框缓缓划过_一篇文章带你了解CSS3按钮知识
  3. 20220201--CTF刷题MISC方向--第4题
  4. 【Linux】- 守护进程的启动方法
  5. git命令之git mergetool vi非正常退出.swp删除不了的问题
  6. RISC-V工具链环境(基于Debian/Linux操作系统)
  7. ●BZOJ 3129 [Sdoi2013]方程
  8. noip2017考前整理(未完)
  9. HDU 4870 Rating 高斯消元法
  10. SSRS: How to Display Checkbox on Report