Android 遍历文件夹下指定类型文件
2017-05-19 本文已影响0人
阴天吃鱼
先判断是否有sd卡
boolean sdCardExist = Environment.getExternalStorageState()
.equals(Environment.MEDIA_MOUNTED);
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();
searchFile(sdDir.getPath());//搜索調用方法
} else {
Toast.makeText(mActivity, "没有sd卡", Toast.LENGTH_SHORT).show();
}
- 搜索调用方法
private void searchFile(String filePath) {
File file = new File(filePath);
List<File> folderList = new ArrayList<File>();
if (file.isDirectory()) {
if (file.listFiles() != null) {
for (File childFile : file.listFiles()) {
if (childFile.isDirectory()) {
folderList.add(childFile);
} else {
checkChild(childFile);//筛选结果返回
}
}
}
} else {
checkChild(file);
}
for (File folder : folderList) {
searchFile(folder.getPath());
}
}
- 筛选结果返回方法 ,我是剔除图片文件
private void checkChild(File childFile) {
if (!childFile.getName().contains(".jpg") || !childFile.getName().contains(".png")) {
if (childFile.length() / 1024 > 1024 * 10) {
//创建模型类存储值,并添加到集合中。通过集合可做任意操作
PhotoInfo photoInfo = new PhotoInfo(childFile.getPath(), childFile.getName(), 0, false);
list.add(photoInfo);
}
}
}