DownLoadManager遇到的问题

问题1


问题描述:使用DownLoadManager下载,设置好下载文件的存放路径。当我们根据这个路径去读取文件的时候,发现读不到这个文件。

例如:

设置文件的下载路径(Environment.DIRECTORY_DOWNLOADS):

request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS,GetFileName(url));

设置文件的读取路径:File file =newFile(Environment.DIRECTORY_DOWNLOADS);

结果:读取不到已存在的文件。

造成读不到这个文件的原因是:文件下载后的存放路径与读取这个文件的路径不一致。

虽然我们看似写了同一个路径,但你所写的并不是绝对路径。这个路径的前面部分是不同的。接下来细细探讨下。

其实:

request.setDestinationInExternalFilesDir(x, URIForDM,x);这个方法的默认路径是

mnt/sdcard/Android/data/(packageName)/files+URIForDM

所以我们在使用File file =newFile(URIForDM);是不对的。

正确的读取路径是在设置的下载路径前加上默认的路径

完整的读取路径为:File file =newFile(mnt/sdcard/Android/data/(packageName)/files+URIForDM);


我在程序里面将默认的前部分路径获取写成如下:

Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"Android"+File.separator+"data"+File.separator+context.getPackageName()+File.separator+"files";

这个路径加上你设置的URIForDM就可以获取DownLoadManager下载的文件。

你可能感兴趣的:(DownLoadManager遇到的问题)