批處理刪除工具
阿新 • • 發佈:2019-01-11
作者: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了,拿出來改改更新下感覺還是不錯的!