扫描sdcard文件(递归)

private void saoMiaoSdCard() {
        // TODO Auto-generated method stub
        // 判断是否挂载
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            // 获取sdcard
            File sdcard = Environment.getExternalStorageDirectory();
            // 创建集合对象
            list_file = new ArrayList<File>();
            // 获取该文件夹的所有子文件以及子文件假(过滤)
            getWant(sdcard);
            // 遍历输出集合list
            for (File ff : list_file) {
                System.out.println(ff.getAbsolutePath());
            }
        }

    }

    private void getWant(File sdcard) {
        // TODO Auto-generated method stub
        File[] files = sdcard.listFiles(new FileFilter() {

            @Override
            public boolean accept(File file) {
                if (file.isDirectory()) {
                    return true;
                } else {
                    // 取出文件的名字
                    String filename = file.getName();
                    // 返回后缀名是文本以及MP3的
                    return filename.endsWith(".mp3");
                }

            }
        });

        // 将查询的结果添加到集合中
        if (files != null) {
            for (File f : files) {
                if (f.isFile())// 若是文件,就直接保存
                {
                    list_file.add(f);
                } else {
                    // 若是文件夹就继续扫描mp3,调用自己,递归
                    getWant(f);

                }
            }
        }

    }

 

posted on 2016-04-18 08:26  IT心得  阅读(330)  评论(0编辑  收藏  举报