我试图通过检查用户即将下载的文件是否已经存在来限制重复下载,然后再继续下载。 我使用File.exists()方法来检查这个条件,但似乎总是返回true。 以下是我的代码:
File destination = new File(Environment.DIRECTORY_DOWNLOADS, "/" + playlistTitle + "/" + image.getImgTitle() + ".jpg");
if (!destination.exists()) {
downloadId = downloadImage(image.getImgURL(), image.getImgTitle(), playlistTitle);
downloadIds.add(downloadId);
}
如果我在创建之前直接转到该文件路径,它似乎是空的,但无论如何,上面的代码都返回true。
答案 0 :(得分:1)
你可以在这里查看几件事
首先按预期我们获得了读取和写入存储介质的权限。
并尝试使用以下方法检查是否可以读取文件
if (!file.canRead()) {
return false;
}
如果以上两个不起作用,请使用此。
if (!file.isFile()) {
//file doesn't exist
}else{
//file exists
}
答案 1 :(得分:0)
new File(Environment.DIRECTORY_DOWNLOADS, "/" + playlistTitle
这只能导致一条不可能的道路。
你应该使用
new File( Environment.getExternalPublicDirectory(
Environment.DIRECTORY_DOWNLOADS),......