无法获得内部存储的路径

时间:2015-08-10 13:54:00

标签: java android

我正在使用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.如何正确访问下载的文件?

3 个答案:

答案 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");

根据文件:

  

用于放置用户已下载文件的标准目录。