使用正则表达式匹配扫描指定目录下的所有媒体文件

package match;

import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Utils {
	/**
	 * 遍历指定文件夹下的资源文件
	 * @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 (Utils.isMusic(fileExtension)) {
							// 初始化音乐文件......................
							System.out.println("This file is Music File,fileName="+fileName+"."
									+fileExtension+",filePath="+filePath);
						}
						
						if (Utils.isPhoto(fileExtension)) {
							// 初始化图片文件......................
							System.out.println("This file is Photo File,filePath="+filePath);
						}
						
						if (Utils.isVideo(fileExtension)) {
							// 初始化视频文件......................
							System.out.println("This file is Video File,filePath="+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;
	}
}

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) <script ...