我需要構建一個處理/ sdcard目錄中的文件的android應用程序。對於每個文件,我想給標記一個文件的功能。我相信使用本地數據庫來處理這個。問題是,如果用戶重命名文件,我會丟失標籤,因爲它們與前一個文件名相關。有沒有辦法來避免這個問題,比如 - 爲文件設置/獲取唯一標識符,即使文件被重命名也不會改變?Android:處理文件系統中的文件的奇怪問題
2
A
回答
3
您需要的是數據庫中每個文件的唯一ID,並將所有標記與該文件名的而不是鏈接起來(不管您是否喜歡,可以生成整數或散列或隨機數將一切正常,重要的是沒有其他文件具有相同的ID,否則標籤將顯示這兩個文件)。
在數據庫中,您可以保留一個將文件名稱鏈接到ID的表格(或者,更靈活地將ID與文件路徑相鏈接,並在需要時從中提取名稱)。當你添加一個標籤時,像鏈接文件名那樣將它鏈接到該標識符。當您加載文件標籤時,它會花費您一個簡單的ID數據庫查找,但允許您在一個位置重命名文件(而不必遍歷數據庫查找文件名)。
要讓人們重命名文件,您可以創建一個FileObserver來觀察MOVE_SELF事件(這將重命名 - 重命名與移動相同)。您可以覆蓋FileObserver.onEvent()方法,您可以在其中使用文件的新名稱更新數據庫。您需要在單獨的線程中執行此操作,以避免鎖定用戶界面。它也不會在您的活動後持續存在,因此您希望有一個服務來保存FileObserver並更新數據庫,或者只是在啓動活動時進行某種掃描。
相關問題
- 1. Python遍歷文件系統。奇怪的問題
- 2. 關於windows批處理文件的奇怪問題
- 3. .NET 4.0文件系統枚舉功能的奇怪之處
- 4. 使用NodeJs處理文件系統的新手問題
- 5. 奇怪的PHP文件上傳問題
- 6. 用jar文件奇怪的問題
- 7. 奇怪的XIB文件問題
- 8. URLVariables和php文件的奇怪問題
- 9. 奇怪的批文件問題
- 10. PhpStorm和JS文件的奇怪問題
- 11. WPF XAML文件的奇怪問題
- 12. VBScript中的文件系統問題
- 13. Windows批處理文件數學奇怪
- 14. android中的文件系統
- 15. 在Windows批處理文件中使用IF NOT EXIST的奇怪問題
- 16. 的Hadoop文件系統是物理文件系統或虛擬文件系統
- 17. 批處理文件搜索android系統中的.odex文件存在/ app
- 18. UIView觸摸處理的奇怪問題
- 19. 用float處理奇怪的問題
- 20. 文件下載奇怪問題
- 21. seek()在文件處理中的問題
- 22. Android文件系統
- 23. Android中的文件/文件夾處理
- 24. 處理Windows文件系統上的unix符號鏈接文件
- 25. C文件處理問題
- 26. 文件處理問題
- 27. c#文件處理問題
- 28. C++文件處理問題
- 29. Perl文件處理問題?
- 30. 文件處理問題
問題是,當用戶在我的應用程序外重命名文件(比如在歸檔應用程序中)時,我失去了我的鏈接,不是嗎? – Cris
好點 - 用更多的信息更新我的答案。 –
很好的答案,謝謝! – Cris