我需要构建一个处理/ 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