⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileoper.java

📁 JAVA操作文件的封装 封装了创建一个文件夹、删除文件、删除文件夹、是否递归删除、copy一个文件或文件夹到指定位置、move一个文件或文件夹到指定位置、压缩文件、过滤文件等等一系列操作
💻 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系统发布/01系统版本";
		String toDir = "D:/testAnt/333";
		String fileSetInc = "11*/*";
		String fileSetExc = "**/CVS,**/*.class"; //排除CVS相关文件,以及.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");
	}
	
	/*
	 * 创建一个文件夹
	 */
	
	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);
			//设置文件源
			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);
			
			//设置文件源
			if(srcFile.isDirectory()){
				FileSet fileSet=new FileSet(); 
				fileSet.setDir(srcFile); 
				fileSet.setIncludes(fileSetInc); 
				fileSet.setExcludes(fileSetExc); //排除CVS相关文件,以及.class文件 

				copyOpe.addFileset(fileSet); 
			}else if(srcFile.isFile()){
				copyOpe.setFile(srcFile);
			}else{
				copyOpe.setFile(srcFile);
			}
			
			//设置目的地
			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中设置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);
			
			//设置文件源
			if(srcFile.isDirectory()){
				FileSet fileSet=new FileSet(); 
				fileSet.setDir(srcFile); 
				fileSet.setIncludes(fileSetInc); 
				fileSet.setExcludes(fileSetExc); //排除CVS相关文件,以及.class文件 

				zipOpe.addFileset(fileSet); 
			}else if(srcFile.isFile()){
				
			}else{
				
			}
			
			//设置目的地
			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(); 
	}
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -