在Windows上连续删除超过X小时的文件的最有效方法是什么?

mar*_*her 5 java windows filesystems algorithm scala

我有一个目录,不断填写"artefact"文件.许多不同的程序将其临时文件转储到此目录中,这些程序不太可能很快就会自动清理.

同时,我想编写一个程序,当它们变得陈旧时,不断删除该目录中的文件,我将其定义为"超过30分钟".

一种典型的方法是使用定时机制列出目录中的文件,过滤旧的东西,并删除旧的东西.但是,这种方法在我的情况下并不是非常高效,因为这个目录可能包含10个或数十万个尚未符合陈旧条件的文件.因此,这种方法将不断循环使用相同的数千个文件来查找旧文件.

真正想要做的是实现某种目录监听器,该监听器被通知添加到目录中的任何新文件.然后,此侦听器将这些文件添加到队列中以便在路上删除.但是,似乎没有办法在我编程的语言(Java和Scala等JVM语言)中实现这样的解决方案.

所以:我正在寻找最有效的方法来保持Windows上"尽可能干净"的目录,最好是使用JVM语言.此外,虽然我从未使用Powershell编程,但如果它提供这种功能,我会考虑它.最后,如果有第三方工具来做这些事情,我想听听他们的意见.

谢谢.

Kel*_*nch 4

为什么不能发出按最旧的顺序排序的目录系统命令:c:>dir /OD

获取结果并删除所有早于阈值的文件,或者如果没有足够旧的文件则休眠。

将其与设置为 1 秒 - 1 分钟粒度的计时器或执行器相结合,以保证文件堆积的速度不会超过您删除它们的速度。