批处理删除工具
作者:Vashon
时间:20160102
之前写本工具类的目的是为了删除地图切片过程产生的垃圾碎片。也可以移植到其他的应用。本批处理删除工具类是多线程下同时进行的,可提高删除速度,特别是文件上G时对比效果就明显了。______滴水石穿
声明:转载请注明出处,尊重原作。
本工具类代码如下:
删除文件类代码:
package com.ywx.utils.deletefile; import java.io.File; /** * 开启多线程删除文件,提示速度. * @author vashon * */ public class FileDeleteThread extends Thread{ /**文件路径**/ private String path; /**文件类型**/ private String type; public String getPath() { return this.path; } public void setPath(String path) { this.path = path; } public String getType() { return this.type; } public void setType(String type) { this.type = type; } public FileDeleteThread(String path, String type) { this.path = path; this.type = type; } public void run() { StartDelete(new File(this.path)); } /** * 开始删除. * @param file */ public void StartDelete(File file) { if (file.isDirectory()) { File[] files = file.listFiles(); for (File itemfile : files) { StartDelete(itemfile); } }else if (file.getName().endsWith(this.type)) { boolean flag = file.delete(); if (flag) System.out.println(toString() + "删除文件【" + file.getAbsolutePath() + "】成功!"); } } }
package com.ywx.utils.deletefile; import java.io.File; /** * 文件有效性校验. * @author vashon */ public class Check{ public boolean validatePath(String path) { if (new File(path).exists()) { return true; } return false; } /** * 验证参数. * @param info * @return */ public boolean validateParam(String[] info) { if (info.length == 2) { return true; } return false; } /** * 校验文件路径和参数. * @param path 文件路径 * @param info 输入的参数 */ public void checkPathAndParam(String path, String[] info) { if (!validateParam(info)) { System.out.println("您输入的参数个数不对!"); System.out.println("格式为:路径名 后缀名"); } if (!validatePath(path)) System.out.println("该路径不存在!"); } }
package com.ywx.utils.deletefile; import java.io.File; /** * 执行删除操作. * @author vashon */ public class Operate{ private String[] info; public Operate(String[] info){ this.info = info; new Check().checkPathAndParam(info[0], info); newInitThread(new File(info[0])); } @Deprecated public void initThread() { File file = new File(this.info[0]); File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) new FileDeleteThread(this.info[0], this.info[1]).start(); } /** * 根据文件大小创建线程. * @param file */ public void newInitThread(File file){ int n = 0; if (file.isDirectory()) { File[] flen = file.listFiles(); for (File itemf : flen) { if (itemf.isDirectory()) { newInitThread(itemf); }else{ n++; break; } } for (int i = 0; i < n; i++){ new FileDeleteThread(this.info[0], this.info[1]).start(); } } } }
package com.ywx.utils.deletefile; public class TestMain{ public static void main(String[] args) { new Operate(args); } }
代码都准备好后,接下来看看bat命令了;把需要执行的参数放在bat里,双击运行就能执行程序删除垃圾碎片了。
bat正文如下:
java -cp .;deletefile.jar com.ywx.utils.deletefile.TestMain d:\P_256_CD35485BFIX solid pause;
做好的工具是这样子的
运行我们的工具执行结果如下:
最后等待的结果如下:
源码下载:批处理工具
附言:这是2014年前写的程序,想想都2016了,拿出来改改更新下感觉还是不错的!