最近有一个需求就是根据用户选择的格式(后缀名)来扫描本地的文件列表展示。
用户可能选择一个后缀名或者俩仨,总之不确定,我也是想着图省事网上看看有没有这样的找一个直接复制就完事了,可是大部分都是选择一种后缀名来搜索文件的。
对于文件操作很菜的我,有点小失望,但是功能还是得做啊。
github地址:https://github.com/yuzhushi/FileSelect
接下来我们看一下效果:
这里选择了两种格式的文件。
获取出来的文件正好是我们想要搜索的格式。
popwindow里的列表是我自己手动添加的数据,适配器选择的网格式布局,每行三个。
简单的popwindow实现,来看一下 popwindow弹出框的确定按钮的点击事件:
在点击确定的时候,我们把用户选择的格式添加进了集合,没有添加的话提示他选择格式。
我们看是怎么获取文件的:
因为我是要获取手机里所有文件夹下符合的文件,所以我这里没有指定文件夹,故用以下路径:
// 获得SD卡根目录路径
File path = Environment.getExternalStorageDirectory();
// 读取文件夹下文件
File[] files = path.listFiles();
我们还需要判断sd卡是否存在,获取一下权限
开始使用递归的方法遍历手机里的文件,但是遍历文件的方法里有一个集合的参数,因为不知道用户选择几个格式来搜索,所以我们就把用户选择的 每一个格式都添加进集合来传递给遍历的方法。
把搜索到的文件都放进了arrayList集合里这样我们是不是就可以显示在列表上了呢,是不是也觉得很简单呢。
**github地址:**https://github.com/yuzhushi/FileSelect