java 删除非空目录_利用JAVA代码将磁盘中所有空文件夹进行删除

这篇文章主要介绍了JAVA实现将磁盘中所有空文件夹进行删除的代码,需要的朋友可以参考下

实现代码一、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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值