遍历Sd卡目录中所有子文件【可筛选特定类型文件】
2013-07-18 17:48
417 查看
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; @Override public 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; } //选择条目,提示文件路径 @Override protected 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(); } }
相关文章推荐
- 续:C# 趣味小程序(4)——遍历特定目录及其子目录 (应用实例,压缩指定目录下的所有文件)
- Android遍历特定目录下所有文件,包含子目录的, 并删除最新创建的
- C# 遍历读取某个目录文件夹下的不同类型子文件和其子文件夹(里面可能又有许多文件)
- MATLAB遍历主文件夹下所有子文件里的特定格式文件
- PHP实现遍历某一目录下的所有文件并将特定后缀文件复制到特定目录
- 用dos命令删除某目录下所有特定类型的文件
- 面试题-程序题-Java递归实现遍历文件目录(所有文件夹和子文件)
- Android如何遍历特定目录下所有文件
- go语言实现遍历目录,及查找特定的文件类型
- C#遍历目录中所有自定义类型文件
- MyEclipse------遍历某个路径下的(所有或特定)文件和目录
- shell遍历目录下所有文件(转自http://blog.163.com/clevertanglei900@126/blog/static/111352259201162553652150/)
- c 语言遍历某目录下所有文件代码
- 删除文件服务器上的过期文件、特定类型文件、目录大小为零的空文件夹
- PHP遍历指定目录,并存储目录内所有文件属性信息
- python 输出当前执行目录下的所有文件和子文件
- 遍历一个目录下的所有文件和子文件夹
- 获取目录下指定类型的所有文件
- Linux下遍历所有文件及目录
- Windows下在某个目录下的所有文件中查找特定字符串