JAVA实现将磁盘中所有空文件夹进行删除的代码
实现代码一、
importjava.io.File;
importjava.io.*;
publicclassDelNullDir{
publicvoidShowDir(Filef){
for(Filef1:f.listFiles()){
if(f1.isDirectory()){
ShowDir(f1);
//一直递归到最后的目录
if(f1.listFiles().length==0){
//如果是文件夹里面没有文件证明是空文件,进行删除
f1.delete();
}
}
}
}
/**
*
*把磁盘中所有空的文件夹进行删除
*/
publicstaticvoidmain(String[]args){
Filef=newFile("F:\\360CloudUI\\");
newDelNullDir().ShowDir(f);
}
}
实现代码二、
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.UnsupportedEncodingException;
importjava.util.Date;
/**
*Description:递归方式,扫描并删除磁盘中的空文件夹
*(C盘中的一些空文件夹是系统文件夹,删除多次后空文件夹数量不变,则停止此程序)
**/
publicclassDelEmptyFolders{
//空文件夹的绝对路径
privatestaticStringBufferpaths;
//本次扫描的空文件夹的数量
privatestaticintcnt;
publicstaticvoidmain(String[]args){
booleanflag=true;
do{
cnt=0;
paths=newStringBuffer();
longstart=newDate().getTime();
System.out.println("正在扫描......");
//要扫描的磁盘
Filedisk=newFile("C:/");
//日志文件的位置
Filelog=newFile("D:/scanLog_C.txt");
try{
//扫描磁盘
scanEmptyFolders(disk);
//空文件夹数大于0时,将文件夹的绝对路径记录到日志中并再扫描一次;否则停止扫描
if(cnt>0){
fileWrite(paths.toString(),log);
}else{
flag=false;
}
}catch(FileNotFoundExceptione1){
e1.printStackTrace();
}catch(IOExceptione2){
e2.printStackTrace();
}
longend=newDate().getTime();
System.out.println("本次扫描完毕,耗时:"+(end-start)/1000+"秒,共删除:"+cnt+"个空文件夹!\n");
}while(flag);
}
/**
*TODO:递归扫描空文件夹
*@throwsUnsupportedEncodingException
**/
privatestaticvoidscanEmptyFolders(Filefile)throwsUnsupportedEncodingException{
if(file!=null&&file.isDirectory()){
File[]files=file.listFiles();
//非空文件夹
if(files!=null){
if(files.length>0){
for(Filetemp:files){
scanEmptyFolders(temp);
}
}else{
System.out.println(file.getAbsolutePath());
//记录日志
paths.append(newString((file.getAbsolutePath()+"\r\n").getBytes(),"UTF-8"));
cnt++;
//删除空文件夹
file.delete();
}
}
}
}
/**
*TODO:将字符串写入文本文件
*@throwsIOException
**/
privatestaticvoidfileWrite(Stringinfo,Filefile)throwsIOException{
FileOutputStreamfos=newFileOutputStream(file);
BufferedOutputStreambos=newBufferedOutputStream(fos);
bos.write(info.getBytes());
bos.flush();
bos.close();
fos.close();
}
}
以上就是JAVA删除空文件夹的实现代码,需要的朋友可以参考一下。