我需要有效的算法來保留特定文件夾中只有十個最新文件在磁盤上以支持某種發佈過程。在任何時間點,只有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