Android:检查SD卡上的目录

时间:2011-08-15 23:02:45

标签: android

我只需要列出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]);
      } 
}

我在日志中也看到了子目录。我做错了什么?

2 个答案:

答案 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