• File的综合应用


    package com.beiwo.homework;
    
    import java.io.File;
    
    /*
           4.将一个文件夹中所有的文件查找出来,按照一定的格式
         分析 :  1.一个文件夹中存在文件,子文件夹
            2.除了当前文件夹,还有子文件夹中的文件也需要找出来。
            3.子文件查找文件和当前文件查找文件是一样的操作,就可以定义一个方法来做文件查找
            
           3.删除一周前的数据
           
           2.获取文件夹中所有文件的大小
           
           1.判断是否有隐藏文件
            
          
               
     */
    public class HomeWork {
    
        static int totalSize = 0; //只会被创建一次
        
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            //1.获取指定文件夹
            File file = new File("D:\java课件及资料\第十八次课");
            
            //2.调用查找的方法
            getFile(file, 1);
            
            //3.打印文件的总大小
            System.out.println("文件夹的总大小:"+totalSize*1.0/(1024 *1024*1024)+"G");
            
            
    
        }
        
        //4.判断隐藏文件
        public static boolean getHiddenFile(File file){
            
            return file.isHidden();
        }
        
        //3.获取文件夹中所有文件的大小
        public static void getFileSize(File file){
            
             
             if(file.isFile()){
                 
                 totalSize+=file.length();
             }
             
        }
        
        
        //删除一周前数据
        public static void deleteAfterWeekFile (File file){
            
            //1.获取文件最后一次被操作的时间
            long lastTime = file.lastModified();
            
            //2.获取当前的时间毫秒数
            long currentTime = System.currentTimeMillis();
            
            //3.做时差  毫秒数
            long time = currentTime - lastTime;
            
            //4.将毫秒数转为天数
            int day = (int)(time / (1000*60*60*24));
            
            if(day>=7){
                
                //删除文件操作
                if(file.isFile()){
                    
                    file.delete();
                }
                
            }
            
            
        }
        
        
        //区分目录结构
        public static String flag(int count){
            String str ="";
            for(int i = 0 ; i < count ;i++){
                str+="--"+" ";
            }
            return str;
            
        }
        
        /**
         *  查找文件夹中所有的文件
         * @param targetPath : 需要查找的文件的的路径
         * @param count      : 记录子目录的个数
         */
        public static void getFile(File file,int count){ //1
            //获取文件的抽象路径
            //File file = new File(targetPath);
            
            if(file.exists()){ // 代表文件夹存在
                
                //获取当前目录中的文件和文件夹
                File[] files = file.listFiles();
                
                for (File file2 : files) {
                    //打印输出
                    System.out.println(flag(count)+file2.getName());
                    //file2到底是文件夹还是文件
                    if(file2.isDirectory()){ // file2是文件夹
                        //count++; //count = count+1  // count 2   3
                        //继续查找 递归调用
                        getFile(file2,count+1); // 2  count = 1
                        
                    }
                    
                    //判断文件是否需要删除
                    if(file2.isFile()){
                        
                        deleteAfterWeekFile(file2);
                        
                        //获取文件总大小
                        getFileSize(file2);
                    }
                    
                 //判断是否有隐藏的数据
                    if(getHiddenFile(file2)){
                        
                        System.out.println(file2.getName()+"这是隐藏的文件");
                    }
                }
                
            }
        }
    
    }
  • 相关阅读:
    elastic
    Leetcode题库 第十行
    Leetcode题库-实现strStr()
    Redis持久化
    Redis的数据结构及应用场景
    Redis缓存的淘汰策略
    Redis缓存常见问题
    Redis面试题1
    消息队列的原理及选型
    【转载】java高并发/mysql/mybatis/spring博客
  • 原文地址:https://www.cnblogs.com/zhv5/p/6134710.html
Copyright © 2020-2023  润新知