我只需要列出SD卡上的文件。
使用以下代码:
File sdcard=new File(Environment.getExternalStorageDirectory().getAbsolutePath());
if(sdcard.isDirectory()){
String files[]= sdcard.list();
for(int i=0;i<files.length;i++){
File f=new File(files[i]);
if(!f.isDirectory())
Log.d("FILES",files[i]);
}
}
我在日志中也看到了子目录。我做错了什么?
答案 0 :(得分:1)
试试这个:
if(sdcard.isDirectory()){
File[] files = sdcard.listFiles();
for (File f : files){
if(!f.isDirectory())
Log.d("FILES",f.getName());
}
}
关键区别是sdcard.files()
vs sdcard.listFiles()
。
答案 1 :(得分:1)
我认为问题在于你需要递归地执行此操作:
File sdcard=Environment.getExternalStorageDirectory();
private void logFiles(File sdcard) {
if(sdcard.isDirectory()){
File[] files= sdcard.listFiles();
for(int i=0;i<files.length;i++){
if(!f.isDirectory())
Log.d("FILES",files[i]);
else
logFiles(files[i]);
}
}
}
我还没有对此进行测试,但最后的其他可能是您遗失的内容,您可能会发现listFiles
是更好的选择,但是,您需要记录文件名,而不是我离开这里时File
。