2

マイ アプリは、録画したビデオ ファイルを外部ディレクトリの特定のフォルダに保存し、すべてのファイルのパスを含むメタ データをデータベースに保存します。データベースを新しいファイルパスで更新し続ける場合は、ファイルの削除、名前変更、移動を監視する必要があります。私FileObserverはアンドロイドで読んだ。たとえば、SD カードのディレクトリのパスを my の/storage/emulated/0/my_recordings入力パスとしてFileObserver指定すると、入力パス内のすべてのファイルに対してイベントが発生しMOVED_TO、ファイルの名前変更操作を観察するために使用するイベント タイプに対しても発生します。私のディレクトリの下で、私のファイルの新しい相対pathをパス引数で取得しますonEvent (int event, String path) しかし、どのデータベース エントリを更新する必要があるかを理解するために、そのファイルの古いファイル名または古いファイル パスを取得するにはどうすればよいでしょうか。そのファイルの親ディレクトリのパスを渡したので、古いファイル名はありません。

前もって感謝します

4

1 に答える 1

2

MOVE_TO の直前に MOVED_FROM イベントが必要です。MOVED_FROM イベントのパスは古いファイル名にする必要がありますが、MOVED_TO のパスには新しいファイル名を含める必要があります。

また、FileObserver コンストラクターの flags パラメーターで明示的に渡すことにより、このイベントの種類を必ず監視してください。

于 2015-02-05T19:16:07.863 に答える