JAVA实现将磁盘中所有空文件夹进行删除的代码
程序员文章站
2023-12-14 14:42:40
实现代码一、
import java.io.file;
import java.io.*;
public class delnulldir {
publi...
实现代码一、
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删除空文件夹的实现代码,需要的朋友可以参考一下。