/sdcardディレクトリにあるファイルを扱うアンドロイドアプリを構築する必要があります。各ファイルに対して、私はファイルにタグを付けるような機能を与えたい。私はこれを処理するためにローカルDBを使用すると考えています。問題は、ユーザがファイルの名前を変更すると、前のファイル名に関連しているのでタグが失われることです。この問題を避ける方法はありますか?たとえば、ファイルの名前が変更されても変更されないファイルの一意の識別子を取得または設定しますか?Android:ファイルシステムのファイルを扱う際の奇妙な問題
2
A
答えて
3
あなたの必要とするのは、データベース内の各ファイルの一意のIDで、そのIDを持つすべてのタグをにリンクする代わりに、のファイル名です(ただし、好きなだけ生成できます。整数またはハッシュまたは乱数重要なのは、他のファイルが同じIDを持っていないということです。そうでなければ、両方のファイルにタグが表示されます)。
データベースには、ファイルの名前をIDにリンクする1つのテーブルを保持できます(または、より柔軟にファイルのパスにIDをリンクし、必要に応じてIDから名前を抽出できます)。タグを追加するときは、そのIDをファイル名と同じようにリンクします。ファイルのタグを読み込む際に、IDデータベースの参照は簡単ですが、ファイル名を探しながらデータベースを移動する必要はありません。
ファイルの名前を変更するユーザーをキャッチするには、MOVE_SELFイベント(名前の変更 - 名前の変更は移動と同じです)を確認するためにFileObserverを作成します。 FileObserver.onEvent()メソッドをオーバーライドして、新しい名前のデータベースでデータベースを更新することができます。別のスレッドでこれを行い、UIをロックしないようにします。また、アクティビティの後も持続しないので、FileObserverを保持してデータベースを更新するサービスを持つか、アクティビティが起動されたときに何らかのスキャンが行われるようにすることができます。
関連する問題
- 1. Androidでの奇妙なメモリの問題
- 2. Android 3.2奇妙なビューの問題
- 3. Androidの変更奇妙な問題
- 4. 奇妙なAndroidソフトキーボードの問題
- 5. PhpStormとJSファイルの奇妙な問題
- 6. 奇妙な問題、
- 7. 奇妙な問題()
- 8. 奇妙な問題
- 9. 奇妙な問題
- 10. 奇妙な問題。
- 11. Android/Java File.canRead()奇妙な問題
- 12. 奇妙なテンプレートの問題
- 13. UITextViewの奇妙な問題
- 14. 奇妙なCSSの問題
- 15. 奇妙なクラスの問題
- 16. 奇妙なタブの問題
- 17. 奇妙な問題&httpdの
- 18. 奇妙なIE7の問題
- 19. 奇妙なIEの問題
- 20. 奇妙なCSSの問題
- 21. 奇妙なレンダリングの問題
- 22. コンソールアプリケーションの奇妙な問題
- 23. 奇妙なCSSの問題
- 24. 奇妙なデプロイメントの問題
- 25. 奇妙なエンコーディングの問題
- 26. 奇妙なメモリリークの問題
- 27. 奇妙なJFrameの問題
- 28. 奇妙なperlの問題
- 29. 奇妙なコードインデントの問題
- 30. cvStartFindContoursの奇妙な問題?
問題は、ユーザーが私のアプリ(アーカイブアプリで)の外にファイルの名前を変更するとリンクが失われてしまうのですか? – Cris
良い点 - いくつかの情報で私の答えを更新しました。 –
素晴らしい回答、ありがとうございます! – Cris