首页 > 开发 > Java > 正文

JAVA实现将磁盘中所有空文件夹进行删除的代码

2024-07-13 10:09:06
字体:
来源:转载
供稿:网友

实现代码一、

import java.io.File;import java.io.*;public class DelNullDir {	public void ShowDir(File f){		for (File f1:f.listFiles()){			if(f1.isDirectory()){				ShowDir(f1);				//一直递归到最后的目录				if(f1.listFiles().length==0){					//如果是文件夹里面没有文件证明是空文件,进行删除					f1.delete();				}			}		}	}	/** *  * 把磁盘中所有空的文件夹进行删除 */	public static void main(String[] args) {		File f = new File("F://360CloudUI//");		new DelNullDir().ShowDir(f);	}}

实现代码二、

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();  }}

以上就是JAVA删除空文件夹的实现代码,需要的朋友可以参考一下。

 

注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表