问题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下载的文件。
网友评论