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