2016-04-15 183 views
2

我遇到DownloadManager不覆盖现有文件,但创建一个新的文件,例如,而不仅仅是world.map告诉DownloadManager覆盖现有文件

有没有办法告诉他覆盖现有的文件或解决方法,而不必添加新的权限或数百行代码?

+0

如果文件下载完成,它将创建一个新文件(如果名称相同,则向其添加一个数字)。如果该文件被部分下载,它将从何处结束。仍然想要覆盖该文件,然后编写逻辑以先检查文件名,然后继续。 – Kathi

回答

1

我已经与DownloadManager工作过一点,但我从来没有经历过这种行为,因为我在每次重新下载文件之前都删除了该文件。 请问这种行为发生,甚至当你明确地这些方法之一指定路径:

setDestinationInExternalFilesDir()

setDestinationInExternalPublicDir()

如果没有,你应该给它一个尝试。

如果它不起作用,您可以删除以前下载的内容,您需要将下载的ID存储在某处以便能够删除它。这样:

downloadManager.remove(ids); 

然后下载其他文件。

+0

我使用'setDestinationInExternalPublicDir()'并体验这种行为。删除旧文件不是一个好的选择,因为当下载失败时没有任何内容。拥有旧文件比没有更好。但我正在考虑在下载新文件之前重命名旧文件。 – hgoebl