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 }
时间: 2024-10-17 00:58:37

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

Java File类学习笔记2:File类对象及常用操作方法

一. 文件.相对路径与绝对路径 1.文件 (1)标准文件:就像图片,音乐文件等. (2)目录文件:也就是平常所说的文件夹. (3)虚拟内存文件:系统在运行程序时生成的临时性文件. 2.文件的路径 (1)相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径 如: A文件是"D:\MyDocuments\StudySample\src\cn\xmh", B文件是"D:\MyDocuments\StudySample\src\netjava

Java文件操作---递归遍历文件目录

在读取文件降序输出单词及其个数的基础上,将txt文件存入文件夹中,开始递归遍历文件目录,之后输出txt文件中的单词及其个数,仍然是降序排列. 代码如下 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileReader; 4 import java.util.Map; 5 import java.util.Map.Entry; 6 import java.util.ArrayList; 7 imp

Java File类总结和FileUtils类

Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. File类的对象可以是目录或者文件. 如果是目录,public boolean isDirectory()返回true: 如果是文件(非目录则是文件),public boolean isFile()返回true: 但是注意需要先判断文件是否存在,如果文件不存在,上面两个方法都返回false,即不存在的F

Java File类的介绍

用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有两个组件: 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名,以及 零个或更多字符串名称 的序列. 除了最后一个,抽象路径名中的每个名称代表一个目录:最后一个名称既可以代表目录,也可以代表文件.空的 抽象路径名没有前缀和名称序列. 路径

Java File类的学习

File类的概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. File类部分构造方法 /** * 从父抽象路径名和子路径名字符串创建新的File实例. */ private File(String child, File parent) { ... } /** * 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例. */ public File(String pathname) { ... } 路径分隔符和默认名称分隔符 /

java File类

今天我要总结一下java File类.这个是一个很重要的类. 首先是我画的思维导图. 还写了一些自己写的代码. /** * Date : 2017/6/24 * Author : Hsj * Description : */ public class Demo { /** * File(pathname)表示文件或文件夹路径 * File(String parent,child); * File(File parent,child); */ @Test public void fun() { /

JAVA File类 分析(三)

前面两篇与大家一起研究了unix下的文件系统,本篇将和大家一起分析 文件的属性和文件夹. ok,废话不说,先来段代码 #include <stdio.h> #include <sys/types.h> #include <dirent.h> void do_ls(char[]); void main(int ac,char *av[]){ if(ac==1) do_ls("."); else{ while(--ac){ printf("%s

java File类的基本操作

(如果有谁想要这个软件的话,在评论中留一个邮箱吧.) 前几天好几次看到有朋友晒出玩2048刷高分的截图,我就想我能不能也做一个2048呢?仔细想了想2048游戏的规律,发现其实逻辑上很简单,也不用研究什么算法,于是我马上觉得我可以很快写出来.当天下午我就用了四个小时完成了2048的基本功能.几天后觉得不满足,于是给我的2048加了存档.读档和后退一步的功能,这样就更好刷分了呢! 使用语言:C#: 平台:Visual Studio 2012 Win Form. 如何完成2048的基本功能呢?204

String类对象的常用操作及方法

转载自http://blog.csdn.net/fire1175/article/details/1690431 String类对象的常用操作及方法在Java中,String类包含有50多个方法来实现字符串的各种操作,以下介绍一些我们需要经常使用的方法.(1)字符串的连接public String concat(String str) 该方法的参数为一个String类对象,作用是将参数中的字符串str连接到原来字符串的后面. (2)求字符串的长度public int length()返回字串的长

SFTP上传下载文件、文件夹常用操作

SFTP上传下载文件.文件夹常用操作 1.查看上传下载目录lpwd 2.改变上传和下载的目录(例如D盘):lcd  d:/ 3.查看当前路径pwd 4.下载文件(例如我要将服务器上tomcat的日志文件取出来)进入你要下的文件所在的文件夹:cd /usr/apache-tomcat-6.0.39/logs/下载:get catalina.out 5.上传文件(例如我要上传一个文件到usr目录下)进入你想要上传文件的目录cd /usr上传文件put do.sh 6.上传下载文件夹格式:下载文件夹g