JAVA实现将磁盘中所有空文件夹进行删除的代码
2017-06-18 14:59
751 查看
实现代码一、
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删除空文件夹的实现代码,需要的朋友可以参考一下。
您可能感兴趣的文章:
相关文章推荐
- JAVA编写把磁盘中所有空的文件夹进行删除
- 用java实现删除文件夹里的所有文件
- C# j基本操作-拷贝文件夹的所有内容到另一个文件夹内: 复制代码 1 public static void CopyDir(string srcPath, string实现文件夹的复制以及删除
- java实现删除文件夹及文件夹下所有文件
- Java实现文件夹的复制、移动、删除代码
- php删除与复制文件夹及其文件夹下所有文件的实现代码
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- java实现输出文件夹下某个格式的所有文件实例代码
- java 递归实现删除或查询指定文件夹下的所有文件
- java实现删除文件夹下所有的文件
- java删除文件夹下的所有文件代码
- 【转载】Java实现文件夹的移动、内容复制、删除代码
- 用java实现删除文件夹里的所有文件
- php删除与复制文件夹及其文件夹下所有文件的实现代码
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- 删除.svn .cvs等文件夹的java代码
- java 递归查找所有目录并且删除文件夹中包含temp的文件夹
- 一个集合的所有子集的Java代码实现
- Java 代码完成删除文件、文件夹操作
- java中如何递归删除文件和文件夹(最简单的代码)