不知道你想如何表示树?无论如何,这里有一个例子,使用递归扫描整个子树。文件和目录被视为一样。注意,

File.listFiles()对非目录返回null。

public static void main(String[] args) {

Collection all = new ArrayList();

addTree(new File("."), all);

System.out.println(all);

}

static void addTree(File file, Collection all) {

File[] children = file.listFiles();

if (children != null) {

for (File child : children) {

all.add(child);

addTree(child, all);

}

}

}

Java 7提供了几个改进。例如,DirectoryStream每次提供一个结果 – 调用者不再需要等待所有I / O操作在执行之前完成。这允许增量GUI更新,提前取消等。

static void addTree(Path directory, Collection all)

throws IOException {

try (DirectoryStream ds = Files.newDirectoryStream(directory)) {

for (Path child : ds) {

all.add(child);

if (Files.isDirectory(child)) {

addTree(child, all);

}

}

}

}

请注意,可怕的null返回值已被替换为IOException。

Java 7还提供了一个tree walker:

static void addTree(Path directory, final Collection all)

throws IOException {

Files.walkFileTree(directory, new SimpleFileVisitor() {

@Override

public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)

throws IOException {

all.add(file);

return FileVisitResult.CONTINUE;

}

});

}

java扫描所在文件夹_如何在Java中扫描文件夹?相关推荐

  1. java怎么引入html文件路径_如何在public_html中读取文件但在域外?使用相对路径...

    我正在尝试从我的(附加组件)域目录之外的目录中读取文件 . 这是我的目录结构: public_html / domain / file_read.php file_write.php sensitiv ...

  2. python移动文件中某个内容_如何在Python中移动文件

    如何在Python中移动文件 我查看了Python $ mv ...接口,但无法找到移动文件的方法. 我如何在Python中执行相当于$ mv ...的操作? >>> source_ ...

  3. 没有为此文件配置应用程序上下文_如何在macOS中管理文件关联?

    在macOS中,右键单击(或按住Ctrl键单击)文件时出现的"打开方式"上下文菜单提供了指向与该文件类型关联的Mac上安装的所有应用程序的链接. 列表的顶部是macOS的默认应用程 ...

  4. java创建临时文件夹_如何在Java中创建一个临时目录/文件夹?

    有没有在Java应用程序内部创建临时目录的标准可靠方法? Java的问题数据库中有一个条目,注释中包含一些代码,但是我想知道在一个常用的库(Apache Commons等)中是否找到标准解决方案? # ...

  5. eclipse中自定义视图_如何在Windows中自定义文件夹视图设置

    eclipse中自定义视图 While the Windows File Explorer seems somewhat simplified compared to older versions, ...

  6. 中查询一个文件夹下文件数量_如何在 Bash 中使用循环 | Linux 中国

    使用循环和查找命令批量自动对多个文件进行一系列的操作.-- Seth Kenlon(作者) 人们希望学习批处理命令的一个普遍原因是要得到批处理强大的功能.如果你希望批量的对文件执行一些指令,构造一个可 ...

  7. linux中查看隐藏文件夹_如何在Linux中隐藏图像中的文件或文件夹

    linux中查看隐藏文件夹 If other people use your Linux PC from time to time, you can hide files and folders fr ...

  8. csv文件示例_如何在R中使用数据框和CSV文件-带有示例的详细介绍

    csv文件示例 Welcome! If you want to start diving into data science and statistics, then data frames, CSV ...

  9. java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素

    如何在一次传递中找到LinkedList的中间元素?这是一个 Java 和非Java程序员面试时经常被问到的编程问题.这个问题类似于检查回文或计算阶乘,有时也会要求编写代码.为了回答这个问题,候选人必 ...

  10. python读取多个文件夹_如何从python中的文件夹中读取多个NetCDF文件

    我试图绘制多年(1979-2014)的平均温度图,我唯一的问题是尝试从文件夹中读取多个NetCDF(.nc)文件.目前我的程序将绘制单个文件,但我不明白如何使其读取文件夹中的所有文件(每年一个).我想 ...

最新文章

  1. python selenium爬虫豆瓣_Python爬虫:学习selenium的正确方式
  2. Random类——获取随机数
  3. r语言python print包_python : 批量下载R语言库包
  4. How is data replicted from HANA to AS
  5. 正则表达式之 NFA 引擎匹配原理详解
  6. linux 4.1.16 ftrace 进程调度,Linux内核进程调度overview(1)
  7. Single Image Haze Removal(图像去雾)-CVPR’09 Best Paper
  8. 跟一个大佬前辈交流了一下
  9. CVPR 2021 3D视觉相关最新进展分享
  10. HRNet的学习笔记
  11. 易语言批量替换html,易语言实现批量文本替换操作的代码
  12. Masscan工具使用
  13. sublime text3格式化代码快捷键
  14. 计算机无法进行磁盘,电脑硬盘无法分区怎么办
  15. Win10 Edge浏览器如何截网页长图
  16. 无法启动程序,.dll不是有效的Win32应用程序
  17. Python 爬虫 + 人脸检测 —— 知乎高颜值图片抓取
  18. 炫龙T50热键功能键
  19. 建立oracle数据库链接,Oracle数据库创建数据库连接(DBLink)详细讲解
  20. 手机号批量查询归属地方法及其简介批量查询号码归属地方法

热门文章

  1. java类加入到spring容器_普通java类加入spring容器的四种方式
  2. 使用python模拟登录
  3. 玄魂工作室培训 CTF(1)
  4. unity用代码控制材质emission color时,勾选了emission后启动不能正常控制自发光颜色的问题解决
  5. Vivado与matlab系统开发设计 system generator(1)入门与安装
  6. neo4j搭建豆瓣电影top250知识图谱踩过的坑
  7. python编程20行代码画爱心
  8. Visual Studio使用技巧
  9. matlab种群规模什么意思,matlab
  10. LeetCode-126.单词接龙II(相关话题:Dijkstra算法+深度优先)