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); } } } } } }

浙公网安备 33010602011771号