Java File 类 文件的常用操作(递归遍历所有文件,统计文件大小,删除文件)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 类 文件的常用操作(递归遍历所有文件,统计文件大小,删除文件)的主要内容,如果未能解决你的问题,请参考以下文章