File 类集框架编程(统计指定目录下面的文件类型及数量)

import java.io.File;  

import java.util.HashMap;  

import java.util.Iterator;  

import java.util.Map;  

import java.util.Map.Entry;  

import java.util.Set;  



/**

 * 统计指定目录下面的文件类型及数量

 * 

 * @author Administrator

 *

 */  

public class FileCountTest {  



// 定义静态变量resultMap,存放文件类型和对应数量  

public static final Map resultMap = new HashMap();  



public static void main(String[] args) {  

getFileType("D:\\MySQL\\");  



// 获取map中的key集合,遍历map  

        Set> entrySet = resultMap.entrySet();  

        Iterator> it = entrySet.iterator();  

while (it.hasNext()) {  

            Entry entry = it.next();  

System.out.println(entry.getKey() +"=" + entry.getValue());  

        }  

    }  





/**

     * 获取指定路径下的文件类型及数量

     * @param path 磁盘路径

     */  

public static void getFileType(String path) {  

File file =new File(path);  



// 判断path路径是否存在  

if (!file.exists()) {  

return ;  

        }  



// 获取path路径的文件列表,并遍历文件列表  

        File[] fileList = file.listFiles();  

for (File fileTemp : fileList) {  



// 如果当前File是文件  

if (fileTemp.isFile()) {  



// 截取文件后缀名  

String endTemp = fileTemp.getName().substring(fileTemp.getName().lastIndexOf(".") + 1);  

                Integer num = resultMap.get(endTemp);  

if (num == null) {  

resultMap.put(endTemp,1);  

}else {  

resultMap.put(endTemp, num +1);  

                }  

            }  



// 如果当前File是目录  

if (fileTemp.isDirectory()) {  



// 递归调用getFileType()方法  

                String pathTemp = fileTemp.getAbsolutePath();  

                getFileType(pathTemp);  

            }  

        }  

    }  

}  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章