Android 4.4文件列表问题

时间:2013-11-26 15:30:44

标签: android android-file

我尝试在/sdcard/文件夹中获取文件,但它会抛出NullPointerException
然后我试图让/路径中的文件夹返回

40
factory
usbdisk
sdcard
storage
config
cache
acct
vendor
d
etc
mnt
ueventd.tuna.rc
ueventd.rc
ueventd.goldfish.rc
system
sys
sepolicy
seapp_contexts
sbin
res
... and others

当我在4.3项目中这样做时效果很好!

更新

4.4中的代码不起作用

File file = Environment.getExternalStorageDirectory();
File[] files = file.listFiles();
Debugger.info(files.length); // NullPointerExcepton
for(File f : files){
    Debugger.info(f.getName());
}

2 个答案:

答案 0 :(得分:3)

Android Developers网站状态(在KitKat的重要行为更改中)

  

如果您的应用从外部存储中读取...

     

您的应用无法读取外部存储设备上的共享文件   在Android 4.4上运行,除非您的应用具有READ_EXTERNAL_STORAGE   允许。也就是说,返回的目录中的文件   如果没有,则不再可以访问getExternalStoragePublicDirectory()   许可。但是,如果您只需要访问特定于应用的应用   目录,由getExternalFilesDir()提供,那么你不需要   READ_EXTERNAL_STORAGE权限。

所以请确保你给出了上述的权利。此外,如果您使用的是具有多张SD卡的设备,则可以使用this issue

答案 1 :(得分:2)

您不应该在代码中硬编码sdcard路径。 相反,您应该通过

获取SD卡路径
android.os.Environment.getExternalStorageDirectory()