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()
并体验该行为。删除旧文件不是一个好的选择,因为当下载失败时,什么都没有。有旧文件总比没有好。但我正在考虑在下载新文件之前重命名旧文件。