Android 获取SD卡指定格式的文件

由于手机里面的文件不是很多,大约8G左右,遍历时间在2S以内
调用方法:
File f =Environment.getExternalStorageDirectory();
List arr = FileUtils.getFiles(f,"txt",true);

/**
 * 根据传入的路径 获取该路径下 指定格式的文件
 * @param dir 要遍历目录的路径
 * @param endName 指定的格式
 * @param isAll 是否遍历该路径下的子目录
 * @return
 */
public static List getFiles(File dir, String endName, boolean isAll) {
    List files = new ArrayList<>();
    recursionFile(dir,files,endName.contains(".")? endName:"."+endName,isAll);
    return files;
}

private static void recursionFile(File dir,List _files,final String endName,boolean isAll) {
    File[] files = dir.listFiles();
    if (files == null) {
        return;
    }
    for (File file : files) {
        if (file.isDirectory() && isAll) {
            String [] arr =file.list(new FilenameFilter() {
                @Override
                public boolean accept(File dir, String name) {
                    return name.endsWith(endName);
                }
            });
            for (int i = 0; i length; i++) {
                _files.add(file.getAbsolutePath().toString()+"/"+arr[i]);
            }
            recursionFile(file,_files,endName,isAll);
        }
    }
}

你可能感兴趣的:(Android 获取SD卡指定格式的文件)