?? fileoper.java
字號:
package io.file;
import java.io.File;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Copy;
import org.apache.tools.ant.taskdefs.Delete;
import org.apache.tools.ant.taskdefs.MatchingTask;
import org.apache.tools.ant.taskdefs.Mkdir;
import org.apache.tools.ant.taskdefs.Move;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.FilterSet;
/*
* antAPI的文件操作
*/
public class FileOper {
private final static String FILE_EXTENSION_SEPARATOR = "."; //文件名中擴展名前面的分隔符
private static Project prj=new Project();
public static void main(String[] args){
//String srcFile ="E:/users/admin/Desktop/tmp/temp/超級書蟲隊——于丹論語心得!.ppt";
//String srcDir ="D:/testAnt/111/ccss";
String srcDir= "E:/Work/hnisi/襄樊勞動/07實施/05系統(tǒng)發(fā)布/01系統(tǒng)版本";
String toDir = "D:/testAnt/333";
String fileSetInc = "11*/*";
String fileSetExc = "**/CVS,**/*.class"; //排除CVS相關(guān)文件,以及.class文件
long t = System.currentTimeMillis();
createFolder(srcDir);
//zip(srcDir,toDir,fileSetInc,fileSetExc);
//move(srcDir,toDir,fileSetInc,fileSetExc);
//del(srcDir,"dir","","");
System.out.println("time used: "+ (System.currentTimeMillis() - t) + "ms");
}
/*
* 創(chuàng)建一個文件夾
*/
public static void createFolder(String dirPath){
Mkdir mkdir=new Mkdir();
mkdir.setProject(prj);
mkdir.setDir(new File(dirPath));
mkdir.execute();
}
private static void setDeleteSetting(Delete delOpe,String strDel,String strFileSrc,String fileSetInc,String fileSetExc){
//strDel選項為: file、dir 表示刪除文件、目錄
try {
delOpe.setProject(prj);
File srcFile = new File(strFileSrc);
//設(shè)置文件源
if(strDel.equalsIgnoreCase("file")){ //只刪除文件
if(srcFile.isDirectory()){
FileSet fileSet=new FileSet();
fileSet.setDir(srcFile);
fileSet.setIncludes(fileSetInc);
fileSet.setExcludes(fileSetExc); //排除
delOpe.addFileset(fileSet);
}else if(srcFile.isFile()){
delOpe.setFile(srcFile);
}else{
delOpe.setFile(srcFile);
}
}else{ //刪除目錄及下面的文件
delOpe.setDir(srcFile);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 刪除文件或者文件夾
*/
public static void del(String strFileSrc,String strDel,String fileSetInc,String fileSetExc){
Delete delete=new Delete();
setDeleteSetting(delete,strDel,strFileSrc,fileSetInc,fileSetExc);
delete.execute();
}
private static void setCopySetting(Copy copyOpe,String strFileSrc,String strFileTo,String fileSetInc,String fileSetExc,boolean blnOverwrite){
try {
copyOpe.setOverwrite(blnOverwrite);
copyOpe.setProject(prj);
File srcFile = new File(strFileSrc);
File toFile = new File(strFileTo);
//設(shè)置文件源
if(srcFile.isDirectory()){
FileSet fileSet=new FileSet();
fileSet.setDir(srcFile);
fileSet.setIncludes(fileSetInc);
fileSet.setExcludes(fileSetExc); //排除CVS相關(guān)文件,以及.class文件
copyOpe.addFileset(fileSet);
}else if(srcFile.isFile()){
copyOpe.setFile(srcFile);
}else{
copyOpe.setFile(srcFile);
}
//設(shè)置目的地
if(toFile != null ){
if(!toFile.exists()){
try {
if(toFile.getName().indexOf(FILE_EXTENSION_SEPARATOR)>-1){ //如果是文件
copyOpe.setTofile(toFile);
}else{ //如果是目錄
copyOpe.setTodir(toFile);
}
} catch (Exception e) {
e.printStackTrace();
}
}else{
if(toFile.isDirectory()){
copyOpe.setTodir(toFile);
}else if(toFile.isFile()){
copyOpe.setTofile(toFile);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* copy一個文件或文件夾到指定位置
*/
public static void copy(String strFileSrc,String strFileTo,String fileSetInc,String fileSetExc,boolean blnOverwrite){
Copy copy=new Copy();
setCopySetting(copy,strFileSrc,strFileTo,fileSetInc,fileSetExc,blnOverwrite);
copy.execute();
}
/*
* 將符合條件的那些文件中的 指定字符串【兩邊帶有@@符號】替換成某字符串,COPY到指定的地方
* 注意:要COPY的地方不能與COPY源的目錄相同,即自己不能覆蓋自己,即使blnOverwrite 為true
* 如將@good@ 替換成 goodluck
*/
//使用:replaceStr("D:/testAnt","D:/testAnt1","**/*.xml","good","goodluck",true)
public static void replaceStr(String strFileSrc,String strFileTo,String fileSetInc,String fileSetExc,String srcStr,String toStr,boolean blnOverwrite){
Copy copy = new Copy();
setCopySetting(copy,strFileSrc,strFileTo,fileSetInc,fileSetExc,blnOverwrite);
FilterSet filter=copy.createFilterSet();
filter.addFilter(srcStr,toStr);
copy.execute();
}
/*
* move一個文件或文件夾到指定位置
* ? move中設(shè)置blnOverwrite沒有任何效果,總是覆蓋
*/
public static void move(String strFileSrc,String strFileTo,String fileSetInc,String fileSetExc){
Move move=new Move();
setCopySetting(move,strFileSrc,strFileTo,fileSetInc,fileSetExc,true);
move.execute();
}
private static void setZipSetting(Zip zipOpe,String strFileSrc,String strFileTo,String fileSetInc,String fileSetExc){
try {
zipOpe.setProject(prj);
File srcFile = new File(strFileSrc);
File toFile = new File(strFileTo);
//設(shè)置文件源
if(srcFile.isDirectory()){
FileSet fileSet=new FileSet();
fileSet.setDir(srcFile);
fileSet.setIncludes(fileSetInc);
fileSet.setExcludes(fileSetExc); //排除CVS相關(guān)文件,以及.class文件
zipOpe.addFileset(fileSet);
}else if(srcFile.isFile()){
}else{
}
//設(shè)置目的地
if(toFile != null ){
if(!toFile.exists()){
try {
if(toFile.getName().indexOf(FILE_EXTENSION_SEPARATOR)>-1){ //如果是文件
zipOpe.setDestFile(toFile);
}else{ //如果是目錄
}
} catch (Exception e) {
e.printStackTrace();
}
}else{
if(toFile.isDirectory()){
}else if(toFile.isFile()){
zipOpe.setDestFile(toFile);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 壓縮文件
*/
public static void zip(String strFileSrc,String strFileTo,String fileSetInc,String fileSetExc){
Zip zip=new Zip();
setZipSetting(zip,strFileSrc,strFileTo,fileSetInc,fileSetExc);
zip.execute();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -