1. 程式人生 > >java 小工具之--zip包解壓,刪除目錄及文件、

java 小工具之--zip包解壓,刪除目錄及文件、

str 備份 odin .get flag source input director 使用



import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;

import java.io.File;


public class Zipper {
public final static String encoding = "GBK";

// 壓縮
public static void zip(String srcPathname, String zipFilepath)
throws BuildException, RuntimeException {
File file = new File(srcPathname);
if (!file.exists())
throw new RuntimeException("source file or directory "
+ srcPathname + " does not exist.");

Project proj = new Project();
FileSet fileSet = new FileSet();
fileSet.setProject(proj);
// 判斷是目錄還是文件
if (file.isDirectory()) {
fileSet.setDir(file);
// ant中include/exclude規則在此都可以使用
// 比如:
// fileSet.setExcludes("**/*.txt");
// fileSet.setIncludes("**/*.xls");
} else {
fileSet.setFile(file);
}

Zip zip = new Zip();
zip.setProject(proj);
zip.setDestFile(new File(zipFilepath));
zip.addFileset(fileSet);
zip.setEncoding(encoding);
zip.execute();
}

// 解壓縮
public static void unzip(String zipFilepath(//目標文件), String destDir(//目標路徑))
throws BuildException, RuntimeException {
if (!new File(zipFilepath).exists())
throw new RuntimeException("zip file " + zipFilepath
+ " does not exist.");

Project proj = new Project();
Expand expand = new Expand();
expand.setProject(proj);
expand.setTaskType("unzip");
expand.setTaskName("unzip");
expand.setEncoding(encoding);

expand.setSrc(new File(zipFilepath));
expand.setDest(new File(destDir));
expand.execute();
}



// 創建目錄
public boolean createDir(String destDirName) {
File dir = new File(destDirName);
if (dir.exists()) {// 判斷目錄是否存在
System.out.println("創建目錄失敗,目標目錄已存在!");
boolean result = deleteDirectory(destDirName);
if(result){
dir.mkdirs();
return true;
}
return false;
}
if (!destDirName.endsWith(File.separator)) {// 結尾是否以"/"結束
destDirName = destDirName + File.separator;
}
if (dir.mkdirs()) {// 創建目標目錄
System.out.println("創建目錄成功!" + destDirName);
return true;
} else {
System.out.println("創建目錄失敗!");
return false;
}
}



public boolean deleteDirectory(String dirPath) {// 刪除目錄(文件夾)以及目錄下的文件
boolean flag = false;
// 如果sPath不以文件分隔符結尾,自動添加文件分隔符
if (!dirPath.endsWith(File.separator)) {
dirPath = dirPath + File.separator;
}
File dirFile = new File(dirPath);
// 如果dir對應的文件不存在,或者不是一個目錄,則退出
if (!dirFile.exists() || !dirFile.isDirectory()) {
return false;
}
flag = true;
File[] files = dirFile.listFiles();// 獲得傳入路徑下的所有文件
for (int i = 0; i < files.length; i++) {// 循環遍歷刪除文件夾下的所有文件(包括子目錄)
if (files[i].isFile()) {// 刪除子文件
flag = deleteFile(files[i].getAbsolutePath());
System.out.println(files[i].getAbsolutePath() + " 刪除成功");
if (!flag)
break;// 如果刪除失敗,則跳出
} else {// 運用遞歸,刪除子目錄
flag = deleteDirectory(files[i].getAbsolutePath());
if (!flag)
break;// 如果刪除失敗,則跳出
}
}
if (!flag)
return false;
if (dirFile.delete()) {// 刪除當前目錄
return true;
} else {
return false;
}
}


public boolean deleteFile(String filePath) {// 刪除單個文件
boolean flag = false;
File file;
flag = false;
file = new File(filePath);
if (file.isFile() && file.exists()) {// 路徑為文件且不為空則進行刪除
file.delete();// 文件刪除
flag = true;
}
return flag;
}

/* public static void main(String[] args) {

// String dir = new String("F:\\我的備份\\文檔\\MyEclipse+9.0正式版破解與激活(親測可用)");
// dir = new String("F:/111.JPG");
// zip(dir, "f:/BZBXB/zipant.zip");
unzip("f:/Desktop.zip", "f:/test/");
}*/




}

//解析裏面的文件

//解析Excel
public List<MpmsFiles> parseMpFiles(String sb){
try {
List<String[]> list=null;
CSVReader reader = new CSVReader( new InputStreamReader(new FileInputStream(sb), "GBK"));
list= reader.readAll();
List<MpmsFiles> list5 = new ArrayList<MpmsFiles>();
if(list!=null&&list.size()>0){
for(int j=0;j<list.size();j++){
MpmsFiles e = new MpmsFiles();
int length =list.get(j).length;
if( length==1){
if(!StringUtils.isEmpty(list.get(j)[0])){
return null;
}
else{
return null;//空文件
}
}
else if(length==2){
if(StringUtils.isEmpty(list.get(j)[0])){
return null;
}
if(StringUtils.isEmpty(list.get(j)[1])){
return null;
}
else{
return null;
}
}
else if(length==3){
if(StringUtils.isEmpty(list.get(j)[0])){
return null;
}
if(StringUtils.isEmpty(list.get(j)[1])||StringUtils.isEmpty(list.get(j)[2])){
return null;
}
e.setQuestion(list.get(j)[0]);
e.setAnswer(list.get(j)[1]);
e.setKeyword(list.get(j)[2]);
}
else {
return null;
}
list5.add(e);
}
reader.close();
return list5;
}
else{
return null;
}
}catch (Exception e) {

e.printStackTrace();

}
}

java 小工具之--zip包解壓,刪除目錄及文件、