我需要有效的算法来保留特定文件夹中只有十个最新文件在磁盘上以支持某种发布过程。在任何时间点,只有10个文件应该出现在这个文件夹中。请给你的建议,这里应该使用什么。磁盘上十个最新的文件
0
A
回答
2
你可以问文件的目录listFiles,是否存在由上次更改时间(超过9排序他们)并删除这些文件最早的(最小号)向下修整至9
0
你必须定期轮询目录并删除比其中第10个最早的文件早的文件。 当然,我们可以质疑“第10个最古老的文件”究竟是什么。毕竟,文件上的时间戳可能不会指示它添加到文件夹的日期/时间。 因此,您的系统实际上可能需要一些独立的方式来跟踪文件夹中的文件,以确定何时添加每个文件,以便根据文件放置在何处时删除文件,而不是文件的实际年龄。
但这是您不提供的业务要求(您甚至自己知道吗?)。
1
如何使用文件系统观察程序如JNotify?
- 注册您感兴趣的事件(例如创建的事件);
- 在每次创建的事件时,将您的内部列表标记为文件数量。
- 只要您到达第11个文件,删除具有最早创建日期的文件。
或者使用共享JCI FileAlterationMonitor(FAM)监测本地文件系统,并收到通知的变化:
ReloadingClassLoader classloader = new ReloadingClassLoader(this.getClass().getClassLoader());
ReloadingListener listener = new ReloadingListener();
listener.addReloadNotificationListener(classloader);
FilesystemAlterationMonitor fam = new FilesystemAlterationMonitor();
fam.addListener(directory, listener);
fam.start();
这discussion可以帮助您与文件系统观察家。
相关问题
- 1. APK文件磁盘上不
- 2. 在磁盘上写上传的文件
- 3. Django的媒体文件在磁盘上
- 4. Carrierwave不保存磁盘上的文件
- 5. 处理/访问磁盘上的文件
- 6. 获取磁盘上的文件大小
- 7. 将System.Xml.XmlElement写入磁盘上的文件
- 8. 在磁盘或MongoDB上存储文件
- 9. 在Django中从磁盘“上传”文件
- 10. 在磁盘上保存文件
- 11. 在全磁盘上创建文件
- 12. 什么是可以存储在使用inode和磁盘块的磁盘上的最大文件大小
- 13. 以“安全”方式更新磁盘上的两个相关文件?
- 14. 从网站上读取最后一行,不保存磁盘上的文件
- 15. HTML5文件系统 - 保存磁盘上的文件
- 16. 如何将所有文件和目录从磁盘移动到该磁盘上的文件夹?
- 17. 如何在linux上获取磁盘上的文件大小?
- 18. 将上传的文件保存在磁盘上,ubuntu路径
- 19. 创建新磁盘时gcloud中的磁盘类型混淆
- 20. 用于搜索文件的最佳磁盘数据结构?
- 21. 这是扫描FAT32磁盘中文件的最快方法吗?
- 22. iphone:磁盘上的NSURLCache
- 23. JavaMail将邮件导出到磁盘上定义的文件夹
- 24. 不写入磁盘的C++文件
- 25. 如何在一个磁盘上存储最新数据的分区和另一个磁盘上的历史数据?
- 26. log4net的 - 在磁盘上的数据库或文件
- 27. 保存附件文件在磁盘上得到失败
- 28. mmap写入磁盘上的文件(同步/异步)
- 29. 如何将文件直接下载到iPhone OS上的磁盘?
- 30. 如何从PL/pgSQL写入磁盘上的文件?
您能详细阐述一下您尝试实施的确切发布过程吗? 另外,文件中有什么?你为什么只需要保持10? – 2010-03-16 05:08:46
将会有10个内容项目。他们需要放在磁盘上的文件夹中。我无法打开商业理念。我认为它并不重要。 – Artic 2010-03-16 05:12:11
需要有关要求的更多细节。你正在编写一个跟踪文件夹的服务吗?您的程序尝试发布某些内容后,是否需要删除较旧的文件? – 2010-03-16 05:12:20