我的应用程序将录制的视频文件保存在外部目录中的特定文件夹中,并保存元数据,包括数据库中每个文件的路径。我需要观察删除,重命名和移动我的文件,以防使用新文件路径更新数据库。我在android中读到了FileObserver
。如果我将SD卡中的目录路径(例如/storage/emulated/0/my_recordings
)作为FileObserver
的输入路径,则会为输入路径中的所有文件触发事件,并且会为{ {1}}我用来观察我目录下文件的重命名操作的事件类型,我将在MOVED_TO
的路径参数中获取我文件的新相对path
但是如何检索旧的文件名或该文件的旧文件路径,以了解我必须更新哪个数据库条目?我传递了该文件的父目录路径,因此我没有旧的文件名。
提前致谢
答案 0 :(得分:1)
MOVE_TO之前应该有一个MOVED_FROM事件。 MOVED_FROM事件的路径应为旧文件名,而MOVED_TO中的路径应包含新文件名。
还要确保通过在FileObserver构造函数的flags参数中显式传递它来监视此事件类型。