批处理删除工具

 

批处理删除工具

 

作者: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 solid
pause;

 

四、实战

做好的工具是这样子的


 

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

 


 

最后等待的结果如下:

 


 

源码下载:批处理工具

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

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值