1. 程式人生 > >批處理刪除工具

批處理刪除工具


                                                  批處理刪除工具


作者: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了,拿出來改改更新下感覺還是不錯的!