注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

文件删除器(三)  

2011-04-27 15:41:52|  分类: 工具箱 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
源码文件Worker.java:
package com.teleca.robin;

import java.io.File;

import com.teleca.robin.lib.face.Console;
import com.teleca.robin.lib.util.SystemConsole;

public class Worker extends Thread {
    private String folderRoot;
    private String fileNamesArray[];
    final Console console;
    final static String kFileSlipRegex=",|;";
    Worker(String folderRoot,String fileNames)
    {
    this(new SystemConsole(),folderRoot,fileNames);
    }
    Worker(Console console,String folderRoot,String fileNames)
    {
    this.console=console;
    this.folderRoot=folderRoot;
    if(fileNames!=null&&fileNames.length()>0)
    fileNamesArray=fileNames.split(kFileSlipRegex);
    else
    fileNamesArray=null;
    }
    public void run()
    {
    doDeletes();
    }
    int fileDeletedCnt=0;
    int dirDeletedCnt=0;
    void doDeletes(){
        fileDeletedCnt=0;
        dirDeletedCnt=0;
        if(folderRoot!=null)
        {
        File root=new File(folderRoot);
        if(root.exists())
        {
        printlnlog("start");
        deleteFiles(root);
        }
        else
        {
        printlnlog("folder "+folderRoot+" do not exist");
        }
        }
        printlnlog("delete success!");
        printlnlog(dirDeletedCnt+"Directorys are deleted ");
        printlnlog(fileDeletedCnt+"files are deleted ");
    }
    public void deleteFiles(File file){
        if(file.isDirectory()){
            File fileList[]=file.listFiles();
            for(int i=0;i<fileList.length;i++) {
                //printlnlog(fileList[i].getAbsolutePath());
                if(isNeedDelete(fileList[i])){
                    if(fileList[i].isDirectory()){
                        deleteDir(fileList[i]);
                        dirDeletedCnt++;
                    } else
                        fileDeletedCnt++;
                    boolean ret=fileList[i].delete();
                    if(ret) {
                        printlnlog("delete dir "+fileList[i].getAbsolutePath()+" success");
                    } else
                        printlnlog("delete dir"+fileList[i].getAbsolutePath()+" failed");
                } else
                    deleteFiles(fileList[i]);
            }
        } else  if(isNeedDelete(file)) {
            boolean ret=file.delete();
            if(ret) {
                printlnlog("delete "+file.getAbsolutePath()+"success");
            } else
                printlnlog("delete "+file.getAbsolutePath()+" failed");
        }
    }
    public void deleteDir(File file){
        if(file.isDirectory()) {
            File fileList[]=file.listFiles();
            for(int i=0;i<fileList.length;i++) {
                //printlnlog(fileList[i].getAbsolutePath());
                if(fileList[i].isDirectory()){
                    deleteDir(fileList[i]);
                    dirDeletedCnt++;
                }else
                    fileDeletedCnt++;
                boolean ret=fileList[i].delete();
                if(ret) {
                          printlnlog("delete "+fileList[i].getAbsolutePath()+" success");
                } else {
                          printlnlog("delete "+fileList[i].getAbsolutePath()+" failed");
                }
            }
        }
    }
    void printlnlog(String str){
    console.println(str);
    }
    void printlog(String str){
    console.println(str);
    }
    public boolean isNeedDelete(File file){
    if(fileNamesArray==null||fileNamesArray.length==0)
    return true;
        String strFileName=file.getName();
        for(int i=0;i<fileNamesArray.length;i++) {
            if(fileNamesArray[i]==null)
                break;
            if(fileNamesArray[i].equals(strFileName))
                return true;
        }
        return false;
    }
}

  评论这张
 
阅读(460)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017