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

网友投稿 267 2023-05-07


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 UnsupporteILolldEncodingException{

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

ILoll }

}

}

}

/**

* 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删除空文件夹的实现代码,需要的朋友可以参考一下。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring Boot入门(web+freemarker)
下一篇:浅谈spring boot 1.5.4 异常控制
相关文章

 发表评论

暂时没有评论,来抢沙发吧~