批处理删除工具

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangwenxue_admin/article/details/50447845


                                                  批处理删除工具


作者: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了,拿出来改改更新下感觉还是不错的!




猜你喜欢

转载自blog.csdn.net/yangwenxue_admin/article/details/50447845
今日推荐