下载到临时文件然后复制的原因是什么?

时间:2017-03-23 11:43:05

标签: android downloading

我有遗留代码(Android代码,如果有关系)从网址下载文件。代码将临时文件创建为目标,使用Android DownloadManager在此处下载内容,并且(在接收下载完成通知时)将下载的内容复制到实际目的地,如内容处置所指定。

这种方法有什么理由吗?作者试图解决哪些潜在问题?或者这只是一个过度设计的代码,我可以将其替换为下载到预期的最终目的地吗?

2 个答案:

答案 0 :(得分:1)

  

这种方法有什么理由吗?

如果临时文件位于外部存储上,并且最终目标位于内部存储上,则解决方法是因为AFAIK DownloadManager不支持content Uri值作为目标位置下载。请注意DownloadManager在单独的过程中进行下载,因此无权访问您应用的内部存储空间。

答案 1 :(得分:0)

通常使用临时文件的原因是在下载完成之前不要覆盖实际文件(文件移动是原子操作)。这样,当您在某处加载实际文件时,您最终不会读取不完整的数据或下载失败的结果。