遍历Sd卡目录中所有子文件【可筛选特定类型文件】

来源:互联网 发布:linux强制退出vi q! 编辑:程序博客网 时间:2024/06/18 08:46
import java.io.File;import java.io.FileFilter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.ListActivity;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;/** *  *遍历Sd卡目录中所有文件,使用listview显示, *单击条目时,提示文件路径 */public class MainActivity extends ListActivity {private SimpleAdapter adapter;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);adapter=new SimpleAdapter(MainActivity.this, getdata(), android.R.layout.simple_list_item_1, new String[]{"name"}, new int[]{android.R.id.text1});setListAdapter(adapter);}//提供listview数据private List<HashMap<String, String>> getdata() {List<HashMap<String, String>> data=new ArrayList<HashMap<String,String>>();File file=Environment.getExternalStorageDirectory();//获得sdcard根目录ArrayList<File> files=getFiles(file);//获得根目录下所有文件//遍历将所有文件加入data中for(File f:files){HashMap<String, String> map=new HashMap<String, String>();map.put("name", f.getName());data.add(map);}return data;}//定义全局变量all_files保存所有文件//定义文件过滤器,添加筛选条件//定义工具类getFiles()获取传入值file的全部子文件private ArrayList<File> all_files=new ArrayList<File>();//private FileFilter filter = new FileFilter() {//文件过滤器,此处目的是筛选出.mp3/.wav/.wma文件//@Override//public boolean accept(File file) {//return file.isDirectory() || file.getName().matches("^.*?\\.(mp3|wav|wma)$");//}//};private ArrayList<File> getFiles(File file) {//使用递归遍历所有子文件File[] files=file.listFiles();//File[] files=file.listFiles(filter);//使用文件过滤器,筛选出满足条件的所有文件for(File f:files){if(f.isFile()){all_files.add(f);}else if(f.isDirectory()&&f.canRead()){getFiles(f);}}return all_files;}//选择条目,提示文件路径@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {super.onListItemClick(l, v, position, id);String msg=all_files.get(position).getPath();Toast.makeText(MainActivity.this, msg, 500).show();}}



原创粉丝点击