批处理删除工具

来源:互联网 发布:剑三成女脸型数据网盘 编辑:程序博客网 时间:2024/06/03 17:19


                                                 批处理删除工具


作者: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);  }}

二、打包成jar文件

1、在eclipse中选择你要导出的类或者package,这里是包;右击,选择Export子选项



2、在弹出的对话框中,选择java文件---选择JAR file



3、到处jar文件到指定目录



4、我这里是导出到桌面。



三、编写bat命令

代码都准备好后,接下来看看bat命令了;把需要执行的参数放在bat里,双击运行就能执行程序删除垃圾碎片了。

bat正文如下:


java -cp .;deletefile.jar com.ywx.utils.deletefile.TestMain d:\P_256_CD35485BFIX solidpause;

四、实战

做好的工具是这样子的



运行我们的工具执行结果如下:




最后等待的结果如下:



 

源码下载:批处理工具

附言:这是2014年前写的程序,想想都2016了,拿出来改改更新下感觉还是不错的!




3 0