Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 708|回复: 0

windows垃圾文件删除程序 java实例

[复制链接]

该用户从未签到

发表于 2011-9-19 15:19:40 | 显示全部楼层 |阅读模式
参照网上流传很广泛的windows垃圾文件处理的批处理文件,写了这个java版的windows垃圾文件清理。

由于记录日志用到了log4j,所以,需要引入log4j类库,还需要log4j.properties文件。
package windows.clear;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

/**
* 清理系统垃圾文件
* @author Billows.Van
* @version 2009-03-15<br>
* 主页: http://haidii.javaeye.com<br>
* Email:fanht@126.com
*
*/
  
ClearSystem.java:
public class ClearSystem{
    private static final Logger log = Logger.getLogger("Test");
    private static int mount_s=0;
    private static int mount_f=0;
    public static void main(String[] args) {
        log.info("开始删除垃圾文件");
        List<String> fileEnd=new ArrayList<String>();
        fileEnd.add(".tmp");
        fileEnd.add("._mp");
        fileEnd.add(".log");
        fileEnd.add(".gid");
        fileEnd.add(".chk");
        fileEnd.add(".old");
        deleteFile(System.getenv("systemdrive"),fileEnd);
        deleteFile(System.getenv("systemdrive")+"/recycler/",null);//ntfs是recycler,fat是recycled
        fileEnd.clear();
        fileEnd.add(".bak");
        deleteFile(System.getenv("windir"),fileEnd);
        deleteFile(System.getenv("windir")+"/prefetch/",null);
        deleteFile(System.getenv("windir")+"/temp/",null);
        deleteFile(System.getProperty("user.home")+"/cookies/",null);
        deleteFile(System.getProperty("user.home")+"/recent/",null);
        deleteFile(System.getProperty("user.home")+"/Local Settings/Temporary Internet Files/",null);
        deleteFile(System.getProperty("user.home")+"/Local Settings/Temp/",null);
        log.info("清理完成。成功删除:"+mount_s+" 个文件和文件夹。失败:"+mount_f);
    }
   
    //删除文件夹内指定文件
    private static void deleteFile(String fileDir,List<String> fileEnd){
        File f=new File(fileDir);
        if(!f.exists()){
            log.info(f.getAbsoluteFile()+"不存在!");
            return;
        }
        File[] allFiles=f.listFiles();
        for(File tmp:allFiles){
            if(fileEnd!=null){
                for(String str:fileEnd){
                    if(tmp.getName().endsWith(str)){
                        deleteFileAndLog(tmp);
                    }
                }
            }else{
                deleteAll(tmp.getAbsolutePath());
            }
        }
    }
   
    //删除指定目录下的所有文件和文件夹
    private static void deleteAll(String dir){
        File f=new File(dir);
        if(!f.exists())
            return;
        else{
            if(f.isFile()){
                deleteFileAndLog(f);
            }else if(f.isDirectory()){
                for(File tmp:f.listFiles()){
                    deleteAll(tmp.getAbsolutePath());
                }
                deleteFileAndLog(f);
            }
        }
    }
   
    //删除文件并记录日志
    private static void deleteFileAndLog(File f){
        try{
            f.delete();
            mount_s++;
            log.info("删除文件夹:"+f.getAbsolutePath()+" 成功。");
        }catch(Exception e){
            mount_f++;
            log.info("删除文件夹:"+f.getAbsolutePath()+" 失败。原因:"+e);
        }
    }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-6-26 16:26 , Processed in 0.381558 second(s), 47 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表