【转载】实现输入文件夹输入检索类型输出相应结果0.01

来源:互联网 发布:vb6数据库实例 贴吧 编辑:程序博客网 时间:2024/06/06 07:48
  1. package fileandxml.file;  
  2.    
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.sql.Time;  
  6. import java.util.*;  
  7.    
  8. import javax.rmi.CORBA.Tie;  
  9.    
  10. //目标实现一个可以传入特定类型以及传入文件路径然后打印出该目录下所有该类型文件,,实现了自己定义异常类,  
  11. public class ViewAllFile {  
  12.     static long time = 0;  
  13.     // 传入文件夹地址,传入要检索的文件类型,输出该文件夹下的该类型的文件,如果是视频输出视频总长度(无奈不会输出视频总时长)  
  14.     static ArrayList<File> fileList = new ArrayList<File>();  
  15.     //判断是否存在该类型文件  
  16.     static boolean flagExistCertainFile = false;  
  17.     //判断查找类型是否为MP4  
  18.     static boolean flagMP4 = false;  
  19.    
  20.     static void findCertainTypeFiles(String directory, String type) throws NoSuchFileUSBException {  
  21.         // 存放需要存放的文件  
  22.    
  23.         File file = new File(directory);  
  24.         if (!file.exists()) {  
  25.             throw new NoSuchFileUSBException();  
  26.         }  
  27.         // 将所有文件放到File数组里面  
  28.         File[] sum = file.listFiles();  
  29.    
  30.         // 遍历所有file  
  31.         for (File i : sum) {  
  32.             if (i.isFile()) {  
  33.                 if (i.getName().endsWith(type)) {  
  34.                     // 这是为了判断呢是否有该类型文件  
  35.                     flagExistCertainFile = true;  
  36.                     if (type == "mp4") {  
  37.                         flagMP4 = true;  
  38.                         // 记录MP4长度  
  39.                         time = time + i.length();  
  40.    
  41.                     }  
  42.    
  43.                     // 存入了集合中,便于后续处理  
  44.                     fileList.add(i);  
  45.                 }  
  46.    
  47.             }  
  48.             // 利用了递归的思想,如果是文件夹的话就应该继续查找直到找到了文件为止  
  49.             if (i.isDirectory()) {  
  50.    
  51.                 // 因为要求传入字符串,所以利用""转换为字符串  
  52.                 findCertainTypeFiles("" + i.getAbsoluteFile(), type);  
  53.             }  
  54.         }  
  55.    
  56.     }  
  57.    
  58.     public static void main(String[] args) {  
  59.    
  60.         // 这里可能出现文件不存在的情况,应该抛出异常  
  61.         try {  
  62.             findCertainTypeFiles("D:\\百度云同步盘\\炼数成金jvm""docx");  
  63.             for (int i = 0; i < fileList.size(); i++) {  
  64.                 System.out.println(fileList.get(i));  
  65.             }  
  66.             // 输出没有该类型文件  
  67.             if (flagExistCertainFile == false) {  
  68.                 {  
  69.                     System.out.println("该目录下没有该类型文件");  
  70.                 }  
  71.             }  
  72.         } catch (NoSuchFileUSBException e) {  
  73.             // TODO Auto-generated catch block  
  74.             System.out.println(e.getMessage());  
  75.         }  
  76.    
  77.         finally {  
  78.             // 如果是视频则输出视频的大小信息  
  79.             if (flagMP4 == true) {  
  80.                 System.out.println("视频大小" + (time / 1048576) + "mb");  
  81.             }  
  82.         }  
  83.    
  84.     }  
  85. }  
  86.    
  87. //  
  88. // 练习自己定义一个异常类  
  89. class NoSuchFileUSBException extends FileNotFoundException {  
  90.     @Override  
  91.     public String getMessage() {  
  92.         // TODO Auto-generated method stub  
  93.         return "文件找不到傻瓜";  
  94.     }  
  95. }  
阅读全文
0 0
原创粉丝点击