之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除。网上找了一些方法,也找了一些粉碎机,都没能达到想要的结果,我就简写了一个小应用,用于删除自己脑洞大开创建的级联目录。此小应用没有代码注释,也没有进行容错处理,请大家知悉!哈哈哈哈哈。。。。。若发现有错误,也请告知,我会去修改订正,非常感谢!
闲话少述,直接上码了!
1 /** 2 * Aaron.ffp Inc. 3 * Copyright (c) 2004-2015 All Rights Reserved. 4 */ 5 package ffp; 6 7 import java.io.File; 8 9 /** 10 * 11 * @author Aaron.ffp 12 * @version V1.0.0: delDir ffp DelDir.java, 2015年12月31日 上午10:14:23 Exp $ 13 */ 14 public class DelDir { 15 private static String msg = ""; 16 17 /** 18 * 19 * @author Aaron.ffp 20 * @version V1.0.0: delDir ffp DelDir.java main, 2015年12月31日 上午10:14:23 Exp $ 21 * 22 * @param args 23 */ 24 public static void main(String[] args) { 25 String rootDir = args[0]; 26 String delRootDir = args[1]; 27 28 29 try { 30 File root = new File(rootDir); 31 32 if (root.exists()) { 33 if (root.isFile()) { 34 root.delete(); 35 36 return; 37 } 38 39 delFile(rootDir); 40 41 if ("delete".equals(delRootDir.toLowerCase())) { 42 root.delete(); 43 } 44 } 45 } catch (Exception e) { 46 System.out.println(e.getMessage()); 47 } 48 } 49 50 public static void delFile (String rootDir) { 51 String filename = ""; 52 53 File[] fList = new File(rootDir).listFiles(); 54 55 for (int i = 0; i < fList.length; i++) { 56 filename = fList[i].getPath(); 57 58 if (fList[i].getPath().equals(rootDir) && (new File(rootDir).listFiles().length < 1)) { 59 return; 60 } 61 62 if (fList[i].isFile()) { 63 if (fList[i].delete()){ 64 msg = " ----------------- >> Successed to delete file {" + filename + "}"; 65 System.out.println(msg); 66 } 67 } 68 69 if (fList[i].isDirectory()) { 70 if (fList[i].listFiles().length > 0) { 71 delFile(fList[i].getPath()); 72 } else { 73 if(fList[i].delete()){ 74 msg = " ================= >> Successed to delete folder {" + filename + "}"; 75 System.out.println(msg); 76 } 77 } 78 } 79 } 80 81 fList = new File(rootDir).listFiles(); 82 if (fList.length > 0) { 83 delFile(rootDir); 84 } 85 } 86 }
将程序打包(例如打包为:cleanDirectory.jar),打开命令行,执行命令 :
1 java -jar cleanDirectory.jar "{要删除的根目录}" "delete" 2 3 第二个参数:是否删除根目录
至此, Java学习-040-级联删除目录中的文件、目录 顺利完结,希望此文能够给初学 JavaWeb 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^