收藏 分销(赏)

用java编写垃圾清理文件.doc

上传人:仙人****88 文档编号:9313867 上传时间:2025-03-21 格式:DOC 页数:9 大小:258.50KB
下载 相关 举报
用java编写垃圾清理文件.doc_第1页
第1页 / 共9页
用java编写垃圾清理文件.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述
垃圾文件清理 一 引言 1设计目的 现在电脑使用频率越来越高,人们都用电脑上网,浏览网页,看视频等等,但同时也产生许多垃圾文件于电脑中,这时候自己编写一个垃圾文件清理的程序可以一劳永逸,并且锻炼了自己运用java的编程能力。 2运行环境 1.Windows7下Vmware Workstation 8.0安装Window XP 2.Eclipse helios 二 系统设计 1知识要点 1) Java.io包的主要成分是几个类,它们是InputStream类、OutputStream类、File类、RandomAccessFile类和FileDescriptor类。 数据输入流的类层次结构 2)Java将流操作中常见的异常也定义为类的形式,主要有EOFException类、FileNotFoundException类、IOException类和InterruptedIOException类 数据输出流的类层次结构 3)Date类位于java.util包中,通过它可以获取时、分、秒方面的信息。 4)垃圾文件后缀名:"log","tmp", "_mp", "gid", "chk", "old", "dmp", "bak", "hlp", "temp", "internet" 2系统功能设计流程图: 获取文件夹下所有的文件 扫描子目录文件 截取文件夹后缀名 否 文件是否属于黑名单范畴 是 是 时间差计算 子文件夹个数 扫描个数 删除个数 删除结果详细 删除结果分类 三 系统实现 package com.datatransfer; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import javax.swing.JFileChooser; public class test { static String[] SYSARRAY = { "log","tmp", "_mp", "gid", "chk", "old", "dmp", "bak", "hlp", "temp", "internet" }; static HashMap<String,Integer> map = new HashMap<String,Integer>(); //删除结果分类 static StringBuffer sb = new StringBuffer(); //删除结果详细 static long count = 0; //删除个数 static long scanCount = 0; //扫描个数 static long node = 0; //子文件夹 /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { test t = new test(); java.util.Date now = new Date(); t.listFile("E:\\"); java.util.Date date=new Date(); TDoA(date,now); System.err.println("共扫描 :" + scanCount + "个文件"); System.err.println("共删除了 :" + count + "个文件"); for (String str : SYSARRAY) { System.err.println("共删除【"+str+"】类型垃圾文件 :"+map.get(str)+"个"); } System.err.println("=====================详细信息====================="); System.err.println(sb.toString()); } /** * 获取文件夹下的所有文件 */ public void listFile(String pash) { File f = new File(pash); File[] array = f.listFiles(); //JFileChooser j = new JFileChooser(); for (File file : array) { if (file.isDirectory()) { this.File(file); } else { System.out.println("扫描文件:" + file.getPath()); if (trimExtension(file.getName())) { // System.err.println("删除 :"+file.getPath()); file.delete(); count++; sb.append("删除了:" + file.getPath()); sb.append("/n"); } // System.err.println(j.getTypeDescription(file)); } } } /** * 扫描子目录 文件 * @param f */ public void File(File f) { //一个经典的递归调用 File[] array = f.listFiles(); //JFileChooser j = new JFileChooser(); if (null != array) { for (File file : array) { if (file.isDirectory()) { this.File(file); } else { // System.err.println(file.getName()); // System.err.println(j.getTypeDescription(file)); System.out.println("扫描文件:" + file.getPath()); if (trimExtension(file.getName())) { // System.err.println("删除 :"+file.getPath()); file.delete(); count++; sb.append("成功删除了:" + file.getPath()); sb.append("\n"); } } } } } /** * 截取文件名的后缀名 * @param filename * @return */ public static boolean trimExtension(String filename) { scanCount++; boolean fig = false; if ((filename != null) && (filename.length() > 0)) { int i = filename.lastIndexOf('.'); if ((i > -1) && (i < (filename.length()))) { fig = isDelFile(filename.substring(i + 1, filename.length())); } else { return fig; } } return fig; } /** * 判断文件是否属于黑名单范畴 * @param name * @return */ public static boolean isDelFile(String name) { for (String nodename : SYSARRAY) { if (nodename.equals(name)) { if(null!=map.get(nodename)){ map.put(nodename,map.get(nodename)+1); }else{ map.put(nodename,1); } return true; } } return false; } /** * 时间差计算 * @param now * @param date */ public static void TDoA(Date now ,Date date){ long l=now.getTime()-date.getTime(); long day=l/(24*60*60*1000); long hour=(l/(60*60*1000)-day*24); long min=((l/(60*1000))-day*24*60-hour*60); long s=(l/1000-day*24*60*60-hour*60*60-min*60); System.out.println("历时:"+day+"天"+hour+"小时"+min+"分"+s+"秒"); } } 运行的界面: 四 结束语 在这次报告中,是对面向对象程序设计这门课程和编程方法的一个总结,回顾和实践。Java语言是对面对象的,在实践的过程中,更好的巩固所学的《java简明教程(第三版)》的课程知识。并学会利用收集获取信息的手段进一步学习相关知识,以解决实际操作中遇到的技术难点,从而提高了自学的能力。 在编写垃圾文件清理过程中,运用到了java中的输入和输出处理,理解流的层次结构,掌握输入输出流、数据输入输出流、文件输入输出及其常见的使用办法。在编写其过程中,思路要清晰,关键在于如何找到垃圾文件。首先要知道垃圾文件的后缀名,然后要在文件中搜索查找,文件还包括子文件,子目录。还有特殊的文件是否属于黑名单范畴等考虑问题要全面。 参考文献: [1] 皮常德.《java简明教程(第三版)》.清华大学出版社 2011年2月第3版 [2] Bruce Eckel.Java编程思想。候捷译。北京:机械工业出版社,2002 9
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服