Android 告诉DownloadManager覆盖现有文件
我体验到,Android 告诉DownloadManager覆盖现有文件,android,android-download-manager,Android,Android Download Manager,我体验到,DownloadManager不会覆盖现有文件,而是创建一个新文件,例如world-1.map而不仅仅是world.map 有没有办法告诉他覆盖现有文件或解决方法,而不必添加新的权限或数百行代码?我曾经使用过下载管理器,但我从未经历过这种行为,因为每次重新下载之前我都会删除该文件。 即使使用以下方法之一显式指定路径,也会发生此行为: setdestinationnexternalfilesdir() setDestinationNexternalPublicDir() 如果没有,你应该
DownloadManager
不会覆盖现有文件,而是创建一个新文件,例如world-1.map
而不仅仅是world.map
有没有办法告诉他覆盖现有文件或解决方法,而不必添加新的权限或数百行代码?我曾经使用过
下载管理器,但我从未经历过这种行为,因为每次重新下载之前我都会删除该文件。
即使使用以下方法之一显式指定路径,也会发生此行为:
setdestinationnexternalfilesdir()
setDestinationNexternalPublicDir()
如果没有,你应该试一试
如果它不起作用,你可以删除以前下载的内容,你需要将下载的ID存储在某个地方才能删除它。这样:
downloadManager.remove(ids);
然后下载另一个文件。我也有同样的问题。这是我的工作。我不确定是否还有更技术性的东西,但这对我来说很有用
首先,我检查文件是否存在。
然后,在下载新文件之前删除旧文件
File oldV = new File(Environment.getExternalStorageDirectory()
+ "/foldername/filename");
if(oldV.exists()){
oldV.delete();
}
//codes for DownloadManager to download files.
如果文件下载完成,它将创建一个新文件(如果名称相同,则添加一个编号)。如果部分下载了该文件,它将恢复到结束位置。您仍然希望覆盖该文件,然后编写逻辑以首先检查文件名,然后继续。我使用setDestinationInxternalPublicDir()
并体验该行为。删除旧文件不是一个好的选择,因为当下载失败时,什么都没有。有旧文件总比没有好。但我正在考虑在下载新文件之前重命名旧文件。