问题标签 [directorystream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
82835 浏览

java - 使用 nio.file.DirectoryStream 递归列出目录中的所有文件;

我想列出指定目录中的所有文件以及该目录中的子目录。不应列出任何目录。

我当前的代码如下。它不能正常工作,因为它只列出指定目录中的文件和目录。

我怎样才能解决这个问题?

0 投票
3 回答
2599 浏览

java - “try-with-resources”如何在该程序的上下文中实际工作,该程序删除给定目录节点下的所有文件和文件夹

该程序删除给定节点下的所有文件和文件夹。

*编辑*

我在驱动器 K 上有以下“测试”目录结构:

*结束编辑*

程序有效,因为我偶然发现了“try-with-resources”,这条线被所有 /////////////////////////////////////////////////////////////////////// .

我知道“尝试资源”是必要的:程序可以使用它,而不是没有它。

但我不明白为什么,也不知道它是如何解决我现在描述的原始问题的。

我最初将“资源”放在 try-block 上方,就像这样,这看起来很自然:

除了如上所示移动那一行之外,程序结构其他方面相同,所有文件和子文件夹已成功从文件夹中删除,但DirectoryNotEmptyException被抛出。Windows Explorer 确认程序因异常终止后目录为空。

为什么在空目录上抛出异常?

马的口中,“try-with-resources 语句......声明......一个对象......在语句末尾关闭。”

关闭发生在语句的末尾,所以在循环的末尾。即使使用 try-with-resources 怎么没有发生异常?

就像现在一样,在遍历整个节点之后,它下面的所有内容都被删除了。

那么 try-with-resources 实际上做了什么来启用删除一个没有 try-with-resources 就无法删除的空文件夹?

这些似乎不是愚蠢的问题或微不足道的情况。

DirectoryNotEmptyException无论如何都确实发生了,但是 try-with-resources 以某种方式处理了它?我不敢相信我在问这个问题,因为这看起来确实是一个愚蠢的问题,但究竟发生了什么让程序按预期运行呢?

0 投票
0 回答
840 浏览

java - Files.newDirectoryStream 过滤器递归

我有以下代码:

现在文件夹结构发生了变化,我可以同时拥有:

或者

所以我希望能够使用以下代码:

在这种情况下,我只需要更改pattern变量,其值为"Folder1/*.xml"or "Folder1_*.xml"。第一个 ( "Folder1/*.xml") 不起作用,因为Files.newDirectoryStream它不是递归的,并且仅尝试匹配文件夹中第一级的文件/文件dir夹。

有没有办法以这种方式使用该Files.newDirectoryStream(Path dir, String glob)方法(递归过滤文件),还是我必须让自己成为一个检索所有文件/文件夹并手动过滤它们的递归方法?(我宁愿不使用外部库)

谢谢。

0 投票
0 回答
297 浏览

java - 删除Java中的空文件夹,处理隐藏文件

我正在尝试删除java中的空文件夹,这是我的代码:

它并没有真正起作用,我怀疑隐藏文件是原因。我正在检查“DS_Store”文件,但它似乎并没有真正起作用。有小费吗?这段代码也可能更短。

编辑:忘记提及代码的结果。控制台将打印“DS_Store 文件已删除”,但它要么正在自动重新创建,要么 Files.delete(file) 不起作用。此外,它只能在三个 DS_Store 文件中找到。没有给出错误,没有文件夹被删除。

0 投票
1 回答
1365 浏览

java - 在 Java 8 Stream API 中,DirectoryStream 之间有什么区别和流?

我想返回一个路径流(这些是位于某个目录中的文件)。我最初的方法是这样的:

...但是,我想知道上面的片段和第二个片段之间的区别:

DirectoryStream和都是Stream的子接口AutoCloseable,但除此之外,它们似乎是为不同的目的而设计的。

更准确地说,我的问题是:

Java-8DirectoryStream和接口之间的概念和基于功能的区别是什么?Stream

0 投票
1 回答
2205 浏览

java - 如何使用Java的目录流仅在目录而不是其他子目录中获取文件/子目录

我正在使用 Java 的 DirectoryStream 来获取目录中所有文件/子文件夹的列表。但是,在浏览完目录的所有文件和文件夹之后,我的代码会继续浏览所有子目录。我怎样才能阻止它通过我的子目录呢?

0 投票
0 回答
37 浏览

java - Macintosh directoryStream 上的 Java 将应用程序显示为文件夹

我觉得我一定是错过了什么。看起来这应该很容易,但我似乎找不到这个问题的答案。

我正在使用 Java 8 编写代码

Files.newDirectoryStream()

类 SimpleFileVisitor() {}

在 Macintosh (OSX 10.9.5) 上,应用程序文件夹将所有应用程序显示为具有生成名称的目录,代码告诉我它是一个目录。我希望它像在FileSelectDialog(). 我知道在后台和终端应用程序中实际上只是目录。我的代码的输出最终看起来像这样。

在此处输入图像描述

我想像在 Mac 浏览器中一样对待应用程序,FileSelectDialog()并让它们看起来像一个应用程序。即注意它是一个应用程序并将其视为一个应用程序,并且是子目录和文件。但我无法弄清楚我错过了什么。

默认 apdflckaaaahabafndbhieahigkjhalf.app

应该看起来像

谷歌云端硬盘.app

会有Files.isTraversable()帮助吗?我可以只查找 .app 扩展名,但我不确定它是否 100% 可靠。

0 投票
1 回答
1154 浏览

java - Java FileVisitor 访问一个目录中的命令

我正在尝试使用 Java 的FileVisitor接口遍历文件列表并将内容导入数据库。场景是按顺序导入csv内容。可能有一个名为 Object.csv、Object_updated.csv、Object_deleted.csv 的文件,我需要将这些内容合并到一个数据库中。文件夹层次结构将包含:

这是我提出的基本解析:

这返回的文件列表是:

如果有两个文件 objectname_updated.csv 和 objectname_deleted.csv,则应该先遍历 objectname_updated.csv 而不是 objectname_deleted.csv。这个特定的实例正在工作,但文档说文件列表不能保证是有序的。有没有办法根据文件名获得排序,还是我必须存储预先排序的文件列表?

0 投票
1 回答
291 浏览

java - 如何根据“最后修改”计算每小时的文档数量

我正在开发一种工具来计算来自另一个程序的存档文件。因此,我使用 DirectoryStream 和过滤子目录以及一些带有简单 if 子句的文件(如下所示)。

对于我想知道的统计数据,平均每小时创建多少个文档。

我在处理文件和目录方面不是很有经验,但我想有某种“getLastModified”,将时间范围从最旧到最年轻,并计算每小时的平均文档数?

0 投票
1 回答
3588 浏览

java - DirectoryStream 以什么样的顺序返回路径?文件名,上次修改,文件大小?

我正在尝试使用 DirectoryStream 读取文件夹中的多个文件。总共有10个项目。

doc_01.txt、doc_02.txt、doc_03.txt、doc_04.txt、doc_05.txt、doc_06.txt、doc_07.txt、doc_08.txt、doc_09.txt、doc_10.txt

我希望按照文件名的顺序读取文件。DirectoryStream 是否按文件名的顺序读取文件?因为这是我得到的结果:

./mydata/doc_01.txt、./mydata/doc_02.txt、./mydata/doc_03.txt、./mydata/doc_04.txt、./mydata/doc_08.txt、./mydata/doc_07.txt、./ mydata/doc_09.txt、./mydata/doc_10.txt、./mydata/doc_05.txt、./mydata/doc_06.txt

这是我的代码: