2

我的应用程序将录制的视频文件保存在外部目录的特定文件夹中,并保存元数据,包括数据库中每个文件的路径。我需要观察我的文件的删除、重命名和移动,以防数据库使用新的文件路径进行更新。FileObserver我在android中读到过。例如,如果我将 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 回答