列举出给定目录中各种文件的个数算法实现
2014-09-19 13:33
204 查看
前几天去笔试,有一道研发的笔试题,题目是这样的:递归遍历一个目录,统计目录及其子目录中各种类型文件的数目,统计完成后打印出各种文件的扩展名及其数目。当时笔试写的不完整,今天整理出来,以便参考。
package com.jlau.test;import java.io.File;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * 列举出给定目录中各种文件的个数 * @author 薛寒 创建日期 : 2014-9-19 上午11:26:22 */public class ListFile {// 存储每个文件的扩展名(key) 和 个数(value)private
static Map map = new HashMap();public static Map listFile(File f) {if (f.isDirectory()) {// 是一个目录File[] files = f.listFiles();for (File file : files) {if (file.isDirectory()) {listFile(file);} else {// 是一个文件String name = file.getName();String ext = getFileExt(name);System.out.println(name
+ "====" + ext);if (map.containsKey(ext)) {// 如果扩展名已存在,则+1int alreadyExistCount = map.get(ext);map.put(ext, alreadyExistCount + 1);} else {map.put(ext, 1);// 不存在,是首次加入,则置为1}}}}return map;}/** * 获取文件扩展名 创建日期 : 2014-9-19下午12:48:32 * * @param fileName * @return
*/public static String getFileExt(String fileName) {int pos = fileName.lastIndexOf(".");if (pos <= 0) {return "";} else {String ext = fileName.substring(pos, fileName.length()).toLowerCase();return ext;}}public static void main(String[] args) {File f = new
File("E:/找工作相关");Map map = listFile(f);Set keySet = map.keySet();for (String key : keySet) {System.out.println(key + " 个数 :" + map.get(key));}}}
package com.jlau.test;import java.io.File;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * 列举出给定目录中各种文件的个数 * @author 薛寒 创建日期 : 2014-9-19 上午11:26:22 */public class ListFile {// 存储每个文件的扩展名(key) 和 个数(value)private
static Map map = new HashMap();public static Map listFile(File f) {if (f.isDirectory()) {// 是一个目录File[] files = f.listFiles();for (File file : files) {if (file.isDirectory()) {listFile(file);} else {// 是一个文件String name = file.getName();String ext = getFileExt(name);System.out.println(name
+ "====" + ext);if (map.containsKey(ext)) {// 如果扩展名已存在,则+1int alreadyExistCount = map.get(ext);map.put(ext, alreadyExistCount + 1);} else {map.put(ext, 1);// 不存在,是首次加入,则置为1}}}}return map;}/** * 获取文件扩展名 创建日期 : 2014-9-19下午12:48:32 * * @param fileName * @return
*/public static String getFileExt(String fileName) {int pos = fileName.lastIndexOf(".");if (pos <= 0) {return "";} else {String ext = fileName.substring(pos, fileName.length()).toLowerCase();return ext;}}public static void main(String[] args) {File f = new
File("E:/找工作相关");Map map = listFile(f);Set keySet = map.keySet();for (String key : keySet) {System.out.println(key + " 个数 :" + map.get(key));}}}
相关文章推荐
- 将前缀和后缀相同的文件移动到同一个目录的算法设计及C代码实现
- 统计文件中单词频率的各种算法实现
- 【IOS功能实现】之 获取各种文件的目录路径的方法
- 实现类:在给定目录下搜索包含给定关键字的文件和文件夹
- 用C#实现对目录,文件的各种操作
- c++实现的各种小知识--如取某目录下所有文件等--笔记
- unix下面目录的详细操作(包括实现给定目录遍历下面所有文件)
- 将源目录中的文件按照前缀分发到不同目录中的算法设计及C代码实现
- C#实现Ftp各种操作(上传,下载,删除文件,创建目录,删除目录,获得文件列表)
- python实现读取给定文件夹下文件目录与文件信息(包括子文件夹)
- 实现对给定文件,目录的打包(格式zip)
- java实现对文件的各种操作
- VB 中遍历目录,遍历目录查找文件的2个实现方法
- JSF框架实现各种类型文件的上传下载
- JTree实现的系统文件目录树
- 用java实现对文件的各种操作
- Delphi7 中利用Indy的TidFtp客户端控件实现在服务器指定目录下下载需要的文件
- 利用Dataview实现搜索指定目录下的所有文件,以指定的条件排序(可以按文件名升降序,最后修改时间升降序)
- ASP实现结构化列举并查看某路径下所有文件
- 怎样实现可以下载文件,但不暴露出文件所在目录