Android-01:扫描SD卡以<.xxx>结尾的文件

演示如何扫描sd卡中所有以<.xxx>结尾的文件,并将文件名和路径存放到list中以备使用。

注意:此处重写了FileList的toString方法,是为了在后面的spinner使用FileList时,能够在界面上只显示文件名。

 

package com.vincent.model;

public class FileList {
    private String name;
    private String path;
    
    public FileList(String name, String path) {
        super();
        this.name = name;
        this.path = path;
    }
    @Override
     public String toString() {           //为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()
      // TODO Auto-generated method stub
      return name;
     }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
    
}
public class ScanActivity extends Activity {

//扫描文件列表  
    private static List<FileList> mList = new ArrayList<FileList>();  

    @Override
    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      if(mList.size()>0){
        mList.clear();
      }
      // 从sd卡根目录开始
      walkdir(Environment.getExternalStorageDirectory(),".pfx");
    }
    public void walkdir(File dir,String pattern) {
        File listFile[] = dir.listFiles();

        if (listFile != null) {
            for (int i = 0; i < listFile.length; i++) {

                if (listFile[i].isDirectory()) {
                    walkdir(listFile[i],pattern);
                } else {
                  if (listFile[i].getName().endsWith(pattern)){
                      FileList fl = new FileList(listFile[i].getName().substring(0, listFile[i].getName().length()-4),
                          listFile[i].getAbsolutePath());
                      mList.add(fl);
                  }
                }
            }
        }    
    }  
}    
walkdir

 

posted @ 2013-11-15 09:45  无佲  阅读(119)  评论(0)    收藏  举报