目标:把C:\test目录中把所有文件名包含hello的文件从文件名中去掉!
/** * author:sharp * */ package db.pojo; import java.io.File; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; public class AntTest extends Task { private File file; private String includeFileName; //文件名中包含的文字 public File getFile() { return file; } public void setFile(File file) { this.file = file; } public String getIncludeFileName() { return includeFileName; } public void setIncludeFileName(String includeFileName) { this.includeFileName = includeFileName; } @Override public void execute() throws BuildException { if(!file.isDirectory())return; for(File afile : file.listFiles()){ int sign = afile.getName().indexOf(includeFileName); if(sign < 0){ continue; }else{ afile.renameTo((new File(afile.getParent()+file.separator+afile.getName().split(includeFileName)[0]+afile.getName().split(includeFileName)[1]))); } } } }
build.xml
<?xml version="1.0" encoding="UTF-8"?> <project default="myJar" basedir="." > <property name="destdir" value="destdir" /> <property name="jardestdir" value="jardestdir" /> <property name="jardestdir2" value="jardestdir2" /> <target name="createdir" > <mkdir dir="${destdir}" /> <mkdir dir="${jardestdir2}" /> </target> <target name="myComplie" depends="createdir"> <javac srcdir="src" destdir="${destdir}" /> </target> <target name="myJar" depends="myComplie"> <jar basedir="${destdir}" destfile="${jardestdir}/package.jar" /> </target> <target name="moveFile" depends="myJar"> <copy file="${jardestdir}/package.jar" todir="${jardestdir2}" /> </target> <taskdef name="renameFile" classname="db.pojo.AntTest" classpath="WebRoot\WEB-INF\classes"></taskdef> <target name="rename"> <renameFile file="c:\test" includeFileName="hello"/> <!-- c:\test目录中的文件名含有hello的文件去掉 --> </target> </project>