扫描指定文件夹下的文件,可以扫描音乐、图片和视频等

public class ScanUtils {
    /**
     * 遍历指定文件夹下的资源文件
     * @param folder 文件
     */
    public static void simpleScanning(File folder) {
        //指定正则表达式
        Pattern mPattern = Pattern.compile("([^\\.]*)\\.([^\\.]*)");
        // 当前目录下的所有文件
        final String[] filenames = folder.list();
        // 当前目录的名称
        //final String folderName = folder.getName();
        // 当前目录的绝对路径
        //final String folderPath = folder.getAbsolutePath();
        if (filenames != null) {
            // 遍历当前目录下的所有文件
            for (String name : filenames) {
                File file = new File(folder, name);
                // 如果是文件夹则继续递归当前方法
                if (file.isDirectory()) {
                    simpleScanning(file);
                }
                // 如果是文件则对文件进行相关操作
                else {
                    Matcher matcher = mPattern.matcher(name);
                    if (matcher.matches()) {
                        // 文件名称
                        String fileName = matcher.group(1);
                        // 文件后缀
                        String fileExtension = matcher.group(2);
                        // 文件路径
                        String filePath = file.getAbsolutePath();
                        if (ScanUtils.isMusic(fileExtension)) {

                            // 找到音乐文件 文件名是 fileName,扩展名是 fileExtension,路径是 filePath,可以进行相应操作

                        }
                        if (ScanUtils.isPhoto(fileExtension)) {

                            // 找到图片文件 文件名是 fileName,扩展名是 fileExtension,路径是 filePath,可以进行相应操作

                        }
                        if (ScanUtils.isVideo(fileExtension)) {

                            // 找到视频文件 文件名是 fileName,扩展名是 fileExtension,路径是 filePath,可以进行相应操作

                        }
                    }
                }
            }
        }
    }
    /**
     * 判断是否是音乐文件
     * @param extension 后缀名
     * @return
     */
    public static boolean isMusic(String extension) {
        if (extension == null)
            return false;
        final String ext = extension.toLowerCase();
        if (ext.equals("mp3") || ext.equals("m4a") || ext.equals("wav") || ext.equals("amr") || ext.equals("awb") ||
                ext.equals("aac") || ext.equals("flac") || ext.equals("mid") || ext.equals("midi") ||
                ext.equals("xmf") || ext.equals("rtttl") || ext.equals("rtx") || ext.equals("ota") ||
                ext.equals("wma") ||ext.equals("ra") || ext.equals("mka") || ext.equals("m3u") || ext.equals("pls")) {
            return true;
        }
        return false;
    }
    /**
     * 判断是否是图像文件
     * @param extension 后缀名
     * @return
     */
    public static boolean isPhoto(String extension) {
        if (extension == null)
            return false;
        final String ext = extension.toLowerCase();
        if (ext.endsWith("jpg") || ext.endsWith("jpeg") || ext.endsWith("gif") || ext.endsWith("png") ||
                ext.endsWith("bmp") || ext.endsWith("wbmp")) {
            return true;
        }
        return false;
    }
    /**
     * 判断是否是视频文件
     * @param extension 后缀名
     * @return
     */
    public static boolean isVideo(String extension) {
        if (extension == null)
            return false;
        final String ext = extension.toLowerCase();
        if (ext.endsWith("mpeg") || ext.endsWith("mp4") || ext.endsWith("mov") || ext.endsWith("m4v") ||
                ext.endsWith("3gp") || ext.endsWith("3gpp") || ext.endsWith("3g2") ||
                ext.endsWith("3gpp2") || ext.endsWith("avi") || ext.endsWith("divx") ||
                ext.endsWith("wmv") || ext.endsWith("asf") || ext.endsWith("flv") ||
                ext.endsWith("mkv") || ext.endsWith("mpg") || ext.endsWith("rmvb") ||
                ext.endsWith("rm") || ext.endsWith("vob") || ext.endsWith("f4v")) {
            return true;
        }
        return false;
    }
}

本工具类通过遍历文件夹下的所有文件,然后使用正则表达式来区分拓展名,达到扫描出音乐、图片、视频文件的功能,也可以依葫芦画瓢,仿写出扫描其他拓展名的方法


在工具类找到相应拓展名的文件时,我们可以得到文件名、拓展名和路径信息,我们就可以进行相关的操作


比如我最近在写一个扫描手机内指定文件夹下的图片文件并展示出来,我稍稍改装一下这个工具类,还创建了一个业务bean,让它在扫描的时候将图片的名字和路径设置到对象上,存到集合中返回,这样我就可以在我的页面上通过ListView或者GridView等控件展示这些图片了



  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值