首页 > 代码库 > Java File 类 文件的常用操作(递归遍历所有文件,统计文件大小,删除文件)

Java File 类 文件的常用操作(递归遍历所有文件,统计文件大小,删除文件)

  1 package com.beiwo.homework;
  2 
  3 import java.io.File;
  4 
  5 /*
  6        4.将一个文件夹中所有的文件查找出来,按照一定的格式
  7      分析 :  1.一个文件夹中存在文件,子文件夹
  8         2.除了当前文件夹,还有子文件夹中的文件也需要找出来。
  9         3.子文件查找文件和当前文件查找文件是一样的操作,就可以定义一个方法来做文件查找
 10         
 11        3.删除一周前的数据
 12        
 13        2.获取文件夹中所有文件的大小
 14        
 15        1.判断是否有隐藏文件
 16         
 17       
 18            
 19  */
 20 public class HomeWork {
 21 
 22     static int totalSize = 0; //只会被创建一次
 23     
 24     /**
 25      * @param args
 26      */
 27     public static void main(String[] args) {
 28         // TODO Auto-generated method stub
 29         
 30         //1.获取指定文件夹
 31         File file = new File("D:\\java课件及资料\\第十八次课");
 32         
 33         //2.调用查找的方法
 34         getFile(file, 1);
 35         
 36         //3.打印文件的总大小
 37         System.out.println("文件夹的总大小:"+totalSize*1.0/(1024 *1024*1024)+"G");
 38         
 39         
 40 
 41     }
 42     
 43     //4.判断隐藏文件
 44     public static boolean getHiddenFile(File file){
 45         
 46         return file.isHidden();
 47     }
 48     
 49     //3.获取文件夹中所有文件的大小
 50     public static void getFileSize(File file){
 51         
 52          
 53          if(file.isFile()){
 54              
 55              totalSize+=file.length();
 56          }
 57          
 58     }
 59     
 60     
 61     //删除一周前数据
 62     public static void deleteAfterWeekFile (File file){
 63         
 64         //1.获取文件最后一次被操作的时间
 65         long lastTime = file.lastModified();
 66         
 67         //2.获取当前的时间毫秒数
 68         long currentTime = System.currentTimeMillis();
 69         
 70         //3.做时差  毫秒数
 71         long time = currentTime - lastTime;
 72         
 73         //4.将毫秒数转为天数
 74         int day = (int)(time / (1000*60*60*24));
 75         
 76         if(day>=7){
 77             
 78             //删除文件操作
 79             if(file.isFile()){
 80                 
 81                 file.delete();
 82             }
 83             
 84         }
 85         
 86         
 87     }
 88     
 89     
 90     //区分目录结构
 91     public static String flag(int count){
 92         String str ="";
 93         for(int i = 0 ; i < count ;i++){
 94             str+="--"+" ";
 95         }
 96         return str;
 97         
 98     }
 99     
100     /**
101      *  查找文件夹中所有的文件
102      * @param targetPath : 需要查找的文件的的路径
103      * @param count      : 记录子目录的个数
104      */
105     public static void getFile(File file,int count){ //1
106         //获取文件的抽象路径
107         //File file = new File(targetPath);
108         
109         if(file.exists()){ // 代表文件夹存在
110             
111             //获取当前目录中的文件和文件夹
112             File[] files = file.listFiles();
113             
114             for (File file2 : files) {
115                 //打印输出
116                 System.out.println(flag(count)+file2.getName());
117                 //file2到底是文件夹还是文件
118                 if(file2.isDirectory()){ // file2是文件夹
119                     //count++; //count = count+1  // count 2   3
120                     //继续查找 递归调用
121                     getFile(file2,count+1); // 2  count = 1
122                     
123                 }
124                 
125                 //判断文件是否需要删除
126                 if(file2.isFile()){
127                     
128                     deleteAfterWeekFile(file2);
129                     
130                     //获取文件总大小
131                     getFileSize(file2);
132                 }
133                 
134              //判断是否有隐藏的数据
135                 if(getHiddenFile(file2)){
136                     
137                     System.out.println(file2.getName()+"这是隐藏的文件");
138                 }
139             }
140             
141         }
142     }
143 
144 }

 

Java File 类 文件的常用操作(递归遍历所有文件,统计文件大小,删除文件)