【发布时间】:2012-10-25 14:54:14
【问题描述】:
我有一个问题,我知道如何检查文件夹是否为空,但是当我在循环中检查文件夹是否为空时总是出错,这是我的代码不起作用的示例。
String sdcard = Environment.getExternalStorageDirectory().toString();
File file = new File(sdcard);
File subFiles[] = file.listFiles();
for(int i=0; i<subFiles.length; i++) {
File subFile = new File(sdcard +"/"+ subFiles[i].getName());
if(subFile.isDirectory() && subFile.listFiles().length==0) {
}
}
我的状况总是出错。
【问题讨论】:
-
什么样的错误,在哪一行?
-
不要使用
sdCard + "/" + ...- 而是使用File.pathSeparator常量。 -
subFile.listFiles 返回 null 所以你不能在它上面使用 .length,获取数组列表的条件,如果它是 null 意味着文件夹是空的
-
怎么会有人猜你有什么错误?严重地 ?发布您的堆栈跟踪完整的所有相关日志
-
我不明白的一件事:getExternalStorageDirectory 返回一个文件。为什么要调用 toString 然后从中创建一个新文件?同样,subFiles 是一个文件列表,为什么要调用 getName 并建立一个新的文件路径?
标签: android for-loop directory is-empty