问题标签 [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.
java - 使用 nio.file.DirectoryStream 递归列出目录中的所有文件;
我想列出指定目录中的所有文件以及该目录中的子目录。不应列出任何目录。
我当前的代码如下。它不能正常工作,因为它只列出指定目录中的文件和目录。
我怎样才能解决这个问题?
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 以某种方式处理了它?我不敢相信我在问这个问题,因为这看起来确实是一个愚蠢的问题,但究竟发生了什么让程序按预期运行呢?
java - Files.newDirectoryStream 过滤器递归
我有以下代码:
现在文件夹结构发生了变化,我可以同时拥有:
或者
所以我希望能够使用以下代码:
在这种情况下,我只需要更改pattern
变量,其值为"Folder1/*.xml"
or "Folder1_*.xml"
。第一个 ( "Folder1/*.xml"
) 不起作用,因为Files.newDirectoryStream
它不是递归的,并且仅尝试匹配文件夹中第一级的文件/文件dir
夹。
有没有办法以这种方式使用该Files.newDirectoryStream(Path dir, String glob)
方法(递归过滤文件),还是我必须让自己成为一个检索所有文件/文件夹并手动过滤它们的递归方法?(我宁愿不使用外部库)
谢谢。
java - 删除Java中的空文件夹,处理隐藏文件
我正在尝试删除java中的空文件夹,这是我的代码:
它并没有真正起作用,我怀疑隐藏文件是原因。我正在检查“DS_Store”文件,但它似乎并没有真正起作用。有小费吗?这段代码也可能更短。
编辑:忘记提及代码的结果。控制台将打印“DS_Store 文件已删除”,但它要么正在自动重新创建,要么 Files.delete(file) 不起作用。此外,它只能在三个 DS_Store 文件中找到。没有给出错误,没有文件夹被删除。
java - 在 Java 8 Stream API 中,DirectoryStream 之间有什么区别和流?
我想返回一个路径流(这些是位于某个目录中的文件)。我最初的方法是这样的:
...但是,我想知道上面的片段和第二个片段之间的区别:
DirectoryStream
和都是Stream
的子接口AutoCloseable
,但除此之外,它们似乎是为不同的目的而设计的。
更准确地说,我的问题是:
Java-8DirectoryStream
和接口之间的概念和基于功能的区别是什么?Stream
java - 如何使用Java的目录流仅在目录而不是其他子目录中获取文件/子目录
我正在使用 Java 的 DirectoryStream 来获取目录中所有文件/子文件夹的列表。但是,在浏览完目录的所有文件和文件夹之后,我的代码会继续浏览所有子目录。我怎样才能阻止它通过我的子目录呢?
java - Macintosh directoryStream 上的 Java 将应用程序显示为文件夹
我觉得我一定是错过了什么。看起来这应该很容易,但我似乎找不到这个问题的答案。
我正在使用 Java 8 编写代码
Files.newDirectoryStream()
类 SimpleFileVisitor() {}
在 Macintosh (OSX 10.9.5) 上,应用程序文件夹将所有应用程序显示为具有生成名称的目录,代码告诉我它是一个目录。我希望它像在FileSelectDialog()
. 我知道在后台和终端应用程序中实际上只是目录。我的代码的输出最终看起来像这样。
我想像在 Mac 浏览器中一样对待应用程序,FileSelectDialog()
并让它们看起来像一个应用程序。即注意它是一个应用程序并将其视为一个应用程序,并且是子目录和文件。但我无法弄清楚我错过了什么。
默认 apdflckaaaahabafndbhieahigkjhalf.app
应该看起来像
谷歌云端硬盘.app
会有Files.isTraversable()
帮助吗?我可以只查找 .app 扩展名,但我不确定它是否 100% 可靠。
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。这个特定的实例正在工作,但文档说文件列表不能保证是有序的。有没有办法根据文件名获得排序,还是我必须存储预先排序的文件列表?
java - 如何根据“最后修改”计算每小时的文档数量
我正在开发一种工具来计算来自另一个程序的存档文件。因此,我使用 DirectoryStream 和过滤子目录以及一些带有简单 if 子句的文件(如下所示)。
对于我想知道的统计数据,平均每小时创建多少个文档。
我在处理文件和目录方面不是很有经验,但我想有某种“getLastModified”,将时间范围从最旧到最年轻,并计算每小时的平均文档数?
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
这是我的代码: