本帖最后由 y379107728 于 2011-08-22 09:59:36 编辑

解决方案 »

  1.   

    这个试过可以搜索
    Java code
        public void SearchFiles(File file) {  
            if(file==null) return;
            File[] files = file.listFiles(); 
            if(files==null) return;
            for (File mf : files) {   
                
                if (mf.isDirectory()) { 
                    System.out.println(mf.getPath()); 
                    SearchFiles(mf);   
                } else { 
                    if(file==null) continue;
                    try {  
                        String str=mf.getName().toLowerCase();
                        if (str.endsWith(".bmp") ||str.endsWith(".png") ||str.endsWith(".jpg") ||str.endsWith(".gif") ) 
                        {   
                          System.out.println(mf.getPath());   
                        }   
                    } catch(Exception e) {   
                       e.printStackTrace(); 
                    }   
                }   
            }  
        };    SearchFiles(new File("/sdcard"));
      

  2.   


    private void load(File file) {
    if (file == null)
    return; // 这句代码有点多余 就是确保这个文件不为null 还是加上吧 File[] files = file.listFiles(); // 从传递过来的file中得到所有在它下面的文件和文件夹 for (File f : files) {
    if (f.isDirectory() && f.canRead()) { // f是参数flie下的一个文件或者是文件夹
    load(f); // 如果这个f是一个文件夹 进行递归 调用自身
    }
    // 到这里就可以确定f一定是一个文件了 因为文件夹都在上面遍历了
    String name = f.getName();
    if (name.endsWith(".jpg")) { // 判断文件是否以.jpg结尾,也就是对文件的类型作一个判断
    Log.v("finded", f.getName()); // Log在Android里可用来输出显示,相当于java的System.out
    // 例如 Log.v(”tag”, “message”);
    // tag与LogCat里面的tag相对应,message就是输出的内容
    list.add(f.getAbsolutePath());
    }
    }
    }
      

  3.   

    最后递归调用这个方法 可以得到所有的jpg,如要其它格式自行加上。