我正在使用GitHub的Android-Download-Manager-Pro库来下载android上的文件。
下载完成后,在日志中我看到了:
Create file address: /storage/emulated/0/Downloads/uHlNhjA7c_g_27.jpg
这是一个文件的路径,刚刚下载。当我尝试创建文件值并访问它时,我得到NullPointerException
:
File file = new File("/storage/emulated/0/Downloads/uHlNhjA7c_g_27.jpg");
当我查看日志中文件的长度时,它始终为0.如何正确访问下载的文件?
答案 0 :(得分:1)
试试这个:
Environment.getExternalStorageDirectory()
。不要混淆功能的名称。请在文档中阅读:
注意:不要被"外部"这个词弄糊涂。这里。这个目录 可以更好地被视为媒体/共享存储。它是一个文件系统 可以容纳相对大量的数据,并且可以共享 所有应用程序(不强制执行权限)。传统上这是 SD卡,但它也可以作为内置存储器实现 与受保护的内部存储区别的设备,可以是 作为文件系统安装在计算机上。
答案 1 :(得分:0)
我找到了解决方案,我忘了为清单文件添加权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 2 :(得分:-1)
这个地址可能是正确的。不确定:
File saveFolder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) , "uHlNhjA7c_g_27.jpg");
根据文件:
用于放置用户已下载文件的标准目录。