【发布时间】:2014-01-09 22:21:44
【问题描述】:
The documentation for File.listFiles() 建议只有在调用它的文件不是目录的情况下才会返回null。
我有以下:
String dir = "/storage/emulated/0";
File f = new File(dir);
Log.v("Files",f.exists()+"");
Log.v("Files",f.isDirectory()+"");
Log.v("Files",f.listFiles()+"");
日志如下:
true
true
null
由于某种原因,listFiles() 正在返回 null,即使 File 被识别为有效目录。我对 Android 文件层次结构的行为不是很熟悉,所以我猜问题出在那儿。
作为参考,我在我的 Moto X 上调试,无论手机是否插入我的电脑,结果都是一样的 - 所以我认为这与插入时的安装无关。
【问题讨论】:
-
不是权限问题吗?普通用户是否有权访问该目录?
-
您是否尝试将文件放入该目录?在我看来,文档实际上建议的是,如果它不是目录,它将为 null,但如果那里没有实际的文件,它也会返回 null
-
@DigCamara 好吧,在 Java 中,文件包括目录 - 并且该文件夹中有目录。
-
@Peterdk 我切换到 /sdcard,它指向同一个东西,我认为它对用户开放..?,并得到了相同的结果。
-
File#canRead()告诉你什么? (如果这是错误的,我很确定它是错误的,当您尝试读取目录的内容时,您将收到null)
标签: java android file io file-permissions