Java 删除包含文件引用的SQLite行时,有哪些选项可用于删除文件?
我目前有一个ContentProvider来管理对数据库的访问,该数据库有几个通过外键链接的表。一个表维护应用程序特定音频文件的列表。还有一张布景表;音频表中的行必须在多对一设置表中具有关联行 ON CASCADE DELETE在表上处于活动状态,因此当删除集合表中的行时,音频表中引用集合的行也将被删除 当调用以音频表为目标的delete时,My ContentProvider也会删除引用的文件 因此,数据库端运行良好。但是,如果删除了音频表中的行,文件将保留。我想找到一种自动删除这些文件的方法 一个可能的选择似乎是使用SQL触发器来运行undocumented _DELETE_FILE函数,该函数显然在Android SQLite中可用。显然,Android MediaProvider类使用这种方法自动删除文件 使用_DELETE_FILE函数是否可行 使用_DELETE_文件是否违反了良好做法或安全做法 是否有更好或更可取的方法来实现自动删除未引用的文件,可能是通过ContentProvider?需要定期扫描未引用文件的方法让我觉得不雅观,而需要手动执行级联的方法则很麻烦Java 删除包含文件引用的SQLite行时,有哪些选项可用于删除文件?,java,android,sqlite,Java,Android,Sqlite,我目前有一个ContentProvider来管理对数据库的访问,该数据库有几个通过外键链接的表。一个表维护应用程序特定音频文件的列表。还有一张布景表;音频表中的行必须在多对一设置表中具有关联行 ON CASCADE DELETE在表上处于活动状态,因此当删除集合表中的行时,音频表中引用集合的行也将被删除 当调用以音频表为目标的delete时,My ContentProvider也会删除引用的文件 因此,数据库端运行良好。但是,如果删除了音频表中的行,文件将保留。我想找到一种自动删除这些文件的方法
类似的问题:您已经准备好将扫描方法视为不优雅,但您计划使用未记录的功能?另一种方法是在提供者的delete方法中实现删除,但这样做效率低下。我想你最好偶尔找个维修服务来做一次清理工作。@Luksprog谢谢你的回复。计划使用的是一个过于强烈的短语;这是因为我对使用未记录的函数有疑虑,所以我发布了这个问题。我们将更多地考虑定期清理方法。