Android 遍历文件夹下指定类型文件

先判断是否有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 folderList = new ArrayList();
        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);
            }
        }
    }

csdn
https://blog.csdn.net/binbinxiaoz

你可能感兴趣的:(Android 遍历文件夹下指定类型文件)