首页>>程序代码>>Java程序实现扫描并删除磁盘中的空文件夹
Java程序实现扫描并删除磁盘中的空文件夹
来源: 河伯的博客 时间: 2015-03-31 17:38:37

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.Date;

/**

 * Description:递归方式,扫描并删除磁盘中的空文件夹

 *(C盘中的一些空文件夹是系统文件夹,删除多次后空文件夹数量不变,则停止此程序)

 * */

public class DelEmptyFolders {

    //空文件夹的绝对路径

    private static StringBuffer paths;

    //本次扫描的空文件夹的数量

    private static int cnt;

    public static void main(String[] args) {

        boolean flag = true;

        do{

            cnt = 0;

            paths = new StringBuffer();

            long start = new Date().getTime();

            System.out.println("正在扫描......");

            //要扫描的磁盘

            File disk = new File("C:/");

            //日志文件的位置

            File log = new File("D:/scanLog_C.txt");

            try {

                //扫描磁盘

                scanEmptyFolders(disk);

                //空文件夹数大于0时,将文件夹的绝对路径记录到日志中并再扫描一次;否则停止扫描

                if(cnt > 0){

                    fileWrite(paths.toString(), log);

                }else{

                    flag = false;

                }

            } catch (FileNotFoundException e1) {

                e1.printStackTrace();

            } catch (IOException e2) {

                e2.printStackTrace();

            }

            long end = new Date().getTime();

            System.out.println("本次扫描完毕,耗时:"+(end-start)/1000+" 秒,共删除:"+cnt+" 个空文件夹!\n");

        }while(flag);

    }

    /**

     * TODO:递归扫描空文件夹

     * @throws UnsupportedEncodingException

     * */

    private static void scanEmptyFolders(File file) throws UnsupportedEncodingException{

        if(file != null && file.isDirectory()){

            File[] files = file.listFiles();

            //非空文件夹

            if(files != null){

                if(files.length > 0){

                    for (File temp : files) {

                        scanEmptyFolders(temp);

                    }

                }else{

                    System.out.println(file.getAbsolutePath());

                    //记录日志

                    paths.append(new String((file.getAbsolutePath()+"\r\n").getBytes(),"UTF-8"));

                    cnt++;

                    //删除空文件夹

                    file.delete();

                }

            }

        }

    }

    /**

     * TODO:将字符串写入文本文件

     * @throws IOException

     * */

    private static void fileWrite(String info,File file) throws IOException{

        FileOutputStream fos = new FileOutputStream(file);

        BufferedOutputStream bos = new BufferedOutputStream(fos);

        bos.write(info.getBytes());

        bos.flush();

        bos.close();

        fos.close();

    }

}

本页地址:http://www.easytd.com/chengxudaima/d_15033117764.html

网友评论留言

验证码 换一张
上一篇:PHP WebService获取指定城市的天气预报 下一篇:Java中线程接口Runnable和Thread类的区别