gpt4 book ai didi

java - 每 x 秒读取新文件夹并使用其数据

转载 作者:行者123 更新时间:2023-12-01 11:19:05 25 4
gpt4 key购买 nike

目前我正在用 java 编写一个应用程序,它可以查看目录中的文件(称之为“主题”)。此目录中有一些以各自主题命名的文件夹,可能是“狗”、“猫”等。

我目前正在使用 ScheduledExecutorService 每 30 秒查看一次此目录,遍历每个主题文件夹并对文件夹中的内容执行一些操作(我们会说其他一些独立的代码正在向这些文件夹写入一些内容)主题文件夹,可能是日志文件或其他东西)。

每 30 秒检查一次新子目录的最佳方法是什么?如果我只从主题狗开始,并在这 30 秒之间添加主题“猫”和“鸟”,那么对我来说只浏览这些新文件夹的最佳方法是什么?我正在考虑将它与 HashSet 或其他东西进行比较,但我不确定最有效的方法是什么。

我问这个问题是因为可能会创建大量的子目录,并且在我看来,尝试使用像directory.listFiles()这样的东西循环遍历每个子目录是有问题的。有什么建议吗?

最佳答案

使用java的WatchService API。

The WatchService API is fairly low level, allowing you to customize it. You can use it as is, or you can choose to create a high-level API on top of this mechanism so that it is suited to your particular needs. - Java Docs

当 WatchService 检测到文件或目录更改时,它可以通知您监视文件或目录已更改,并提供其路径。通过使用此 api,您不必担心比较两个列表来查看更改的内容,因为 api 提供了更改文件的路径。

查看 Oracle 提供的有关使用 WatchService api 的 Java 教程“Watching a Directory for Changes”。

关于java - 每 x 秒读取新文件夹并使用其数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com