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()+"这是隐藏的文件"); } } } } }