Java Android:以事务方式将大量文件移动到SD卡?

Java Android:以事务方式将大量文件移动到SD卡?,java,android,android-file,Java,Android,Android File,假设我有一个数据库,其中有几百个BLOB存储在单独的文件中,我想移动到SD卡上,通过编程实现这一点的最佳方法是什么,以确保不会留下任何东西 我意识到我只能跨不同的挂载复制文件 那么,我是否可以将所有文件复制到“缓存”中的一个子目录,然后以原子方式将该子目录移动到正确的位置?或者我可以将所有文件写入带有“temp”前缀的目录,并在验证后将其重命名吗?移动文件夹的可能性(我的意思是,仅通过重命名将其重新定位)取决于文件系统,可能最好不要依赖于。而且,即使它可以工作,它也只能在单个挂载的边界内工作。我

假设我有一个数据库,其中有几百个BLOB存储在单独的文件中,我想移动到SD卡上,通过编程实现这一点的最佳方法是什么,以确保不会留下任何东西

我意识到我只能跨不同的挂载复制文件

那么,我是否可以将所有文件复制到“缓存”中的一个子目录,然后以原子方式将该子目录移动到正确的位置?或者我可以将所有文件写入带有“temp”前缀的目录,并在验证后将其重命名吗?

移动文件夹的可能性(我的意思是,仅通过重命名将其重新定位)取决于文件系统,可能最好不要依赖于。而且,即使它可以工作,它也只能在单个挂载的边界内工作。我建议在成功复制所有文件后重命名文件夹


如果由于以前的崩溃而发现带有“临时”前缀的文件夹,则可以简单地将其删除(“回滚”)。

我建议找到一个具有针对此类问题设计的算法的库。您可能希望首先查看此问题

此数据库是否存在打开的文件?不,没有打开的文件或数据库连接。很高兴了解文件夹“移动”是否有效取决于SD卡文件系统。我要说的是,我将从SD卡上的缓存移动到最终目录。还是不可靠,对吗?你是说rsync被设计成支持文件事务吗?我只知道一些文件系统可能能够,但不是典型的Android SD卡FAT32。事务需要一个文件系统挂钩到内核模块。