让我们说我有一个数据库,其中有几百个blob存储在我想要移动到SD卡的单独文件中,以编程方式执行此操作的最佳方法是什么,确保不会遗漏任何内容?
我意识到我只能在不同的坐骑中复制文件。
那么我可以将所有文件复制到“cache”中的子目录中,然后以原子方式将子目录移动到正确的位置吗?或者我可以将所有文件写入带有“temp”前缀的目录,并在验证后将其重命名吗?
答案 0 :(得分:1)
移动文件夹的可能性(我的意思是,只是通过重命名重新定位)取决于文件系统,可能最好不要依赖它。而且,即使它工作,它仅适用于单个安装的边界内。我建议只需在成功复制所有文件后重命名该文件夹。
如果由于之前的崩溃而发现具有“临时”前缀的文件夹,则可以简单地将其删除(“回滚”)。
答案 1 :(得分:0)
我建议找一个带有算法的库,这个算法专为此类问题而设计。您可以首先查看此问题Any good rsync library for Java?