您的位置:首页 > 其它

查找一个目录下所有的视频或其他格式文件大小

2013-12-18 17:58 246 查看
记得刚学编程的时候,有个很典型的递归例子,就是汉诺塔的问题。

当时是一头雾水呀,一副不明觉厉的样子o(╯□╰)o

现在有个需求是查找内存卡里所有视频,并计算出所占内存大小。

这时首先想到的就是当年的汉诺塔了。

好的,开搞

public static long parseFileOfVoice(File file) {
		if (!file.exists() || file.isHidden()) {
			return 0;
		}
		if (file.isDirectory()) {
			File[] fileArr = file.listFiles();
			if (fileArr == null) {
				return 0;
			}
			long length = 0;
			for (int i = 0; i < fileArr.length; i++) {
				length += parseFileOfVoice(fileArr[i]);
			}
			return length;
		} else if (file.isFile() && isVoice(file)) {
			return file.length();
		}
		return 0;
	}


判断是不是视频,我们可以通过后缀名来处理

public static boolean isVideo(File file){
		String name = file.getName().toLowerCase(Locale.getDefault());
		if(name.endsWith("mp4")
				|| name.endsWith("avi")
				|| name.endsWith("3gp")
				|| name.endsWith("mkv")
				|| name.endsWith("flv")
				|| name.endsWith("rmvb"))
			return true;
		return false;
	}


当然,后缀名你也可以加很多

扩展一下,既然我们可以获取所有视频的大小,那其他文件也就不言而喻了

public static boolean isVoice(File file){
		String name = file.getName().toLowerCase(Locale.getDefault());
		if(name.endsWith("mp3")
				|| name.endsWith("wma")
				|| name.endsWith("wav"))
			return true;
		return false;
	}


查找其他文件就可以根据需求来做了

不过,这种方法,查找起来效率有点不是很高。如果有更好地查找方法,麻烦指导一下小弟,O(∩_∩)O哈哈~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐