我需要有效的算法來保留特定文件夾中只有十個最新文件在磁盤上以支持某種發佈過程。在任何時間點,只有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. X509Certificate.Import磁盤上的文件夾文件
- 3. 在磁盤上寫上傳的文件
- 4. 處理/訪問磁盤上的文件
- 5. 獲取磁盤上的文件大小
- 6. Django的媒體文件在磁盤上
- 7. Carrierwave不保存磁盤上的文件
- 8. 將System.Xml.XmlElement寫入磁盤上的文件
- 9. 在Linux上將文件寫入磁盤的最快方法
- 10. Python刷新文件從磁盤
- 11. EC2上的最大磁盤數
- 12. 在Django中從磁盤「上傳」文件
- 13. 在磁盤上保存文件
- 14. 在全磁盤上創建文件
- 15. http文件上傳到磁盤
- 16. 在磁盤或MongoDB上存儲文件
- 17. 什麼是可以存儲在使用inode和磁盤塊的磁盤上的最大文件大小
- 18. 在磁盤上對磁盤上的值進行持久重新排序
- 19. 文件寫入磁盤
- 20. 內存中的XML文件而不是磁盤上的文件
- 21. 以「安全」方式更新磁盤上的兩個相關文件?
- 22. 從網站上讀取最後一行,不保存磁盤上的文件
- 23. 從內存文件創建磁盤上的Zip文件
- 24. Laravel的文件系統vs上傳文件與磁盤
- 25. HTML5文件系統 - 保存磁盤上的文件
- 26. 磁盤上的unix套接字文件與Ubuntu上的tmpfs
- 27. 如何將所有文件和目錄從磁盤移動到該磁盤上的文件夾?
- 28. 寫入磁盤上的每個LBA
- 29. 將文件表(以bytea存儲)複製到磁盤上的單個文件中?
- 30. 如何在linux上獲取磁盤上的文件大小?
您能詳細闡述一下您嘗試實施的確切發佈過程嗎? 另外,文件中有什麼?你爲什麼只需要保持10? – 2010-03-16 05:08:46
將會有10個內容項目。他們需要放在磁盤上的文件夾中。我無法打開商業理念。我認爲它並不重要。 – Artic 2010-03-16 05:12:11
需要有關要求的更多細節。你正在編寫一個跟蹤文件夾的服務嗎?您的程序嘗試發佈某些內容後,是否需要刪除較舊的文件? – 2010-03-16 05:12:20