Java Tutorial/Ant/File Directory

Материал из Java эксперт
Перейти к: навигация, поиск

Accepts a selection if it is acceptable to both of two FilenameFilters

   <source lang="java">

import java.io.File; import java.io.FilenameFilter; /**

* Accepts a selection if it is acceptable to both of two {@link FilenameFilter}s.
* This takes two {@link FilenameFilter}s as input.
*
*

Eg., to print all files beginning with A and ending with .java:

*
*
 * File dir = new File(".");
 * String[] files = dir.list( new AndFileFilter(
 *         new PrefixFileFilter("A"),
 *         new ExtensionFileFilter(".java")
 *         )
 *     );
 * for ( int i=0; i<files.length; i++ )
 * {
 *     System.out.println(files[i]);
 * }
 * 
*
* @author 
* @version $Revision: 494012 $ $Date: 2007-01-08 11:23:58 +0100 (Mo, 08 Jan 2007) $
* @since 4.0
*/

public class AndFileFilter

   implements FilenameFilter

{

   private final FilenameFilter m_filter1;
   private final FilenameFilter m_filter2;
   public AndFileFilter( final FilenameFilter filter1, final FilenameFilter filter2 )
   {
       m_filter1 = filter1;
       m_filter2 = filter2;
   }
   public boolean accept( final File file, final String name )
   {
       return m_filter1.accept( file, name ) && m_filter2.accept( file, name );
   }

}</source>





Ant task copy file

   <source lang="java">

<project name="foo" default="deploy" basedir=".">

 <target name="init">
   <tstamp/>
   <property name="src" value="src" />
   <property name="build" value="build" />
   <property name="classes" value="classes" />
   <property name="deploy" value="deploy" />
   <property name="config" value="config" />
   <property name="runDir" value="." />
   <property name="local" value="local" />
   <property name="remote" value="remote" />
   <property name="lib" value="lib" />
 </target>
 
 <target name="clean" depends="init">
   <deltree dir="${classes}" />
   <deltree dir="${remote}" />
   <deltree dir="${deploy}" />
   <deltree dir="${lib}" />
 </target>
 
 <target name="prepare" depends="clean">
   <mkdir dir="${classes}" />
   <mkdir dir="${deploy}" />
   <mkdir dir="${lib}" />
 </target>    
 
 <target name="compile" depends="prepare">
   <javac srcdir="${src}" destdir="${classes}" />
   <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" />
   <copyfile src="${config}/remote.properties" dest="${runDir}\remote.properties" />
   <jar jarfile="${lib}/app.jar" basedir="${classes}" />
 </target>

 <target name="prepareDeploy" depends="compile">  
    <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" />
    <copyfile src="${build}/remotebuild.xml" dest="${deploy}/build.xml" />
    <mkdir dir="${remote}" />   
 </target>
 
 <target name="deploy" depends="prepareDeploy">
    <ant antfile="${build}/deploy.xml" dir="." />
 </target>

</project></source>





Ant task delete tree

   <source lang="java">

<project name="foo" default="deploy" basedir=".">

 <target name="init">
   <tstamp/>
   <property name="src" value="src" />
   <property name="build" value="build" />
   <property name="classes" value="classes" />
   <property name="deploy" value="deploy" />
   <property name="config" value="config" />
   <property name="runDir" value="." />
   <property name="local" value="local" />
   <property name="remote" value="remote" />
   <property name="lib" value="lib" />
 </target>
 
 <target name="clean" depends="init">
   <deltree dir="${classes}" />
   <deltree dir="${remote}" />
   <deltree dir="${deploy}" />
   <deltree dir="${lib}" />
 </target>
 
 <target name="prepare" depends="clean">
   <mkdir dir="${classes}" />
   <mkdir dir="${deploy}" />
   <mkdir dir="${lib}" />
 </target>    
 
 <target name="compile" depends="prepare">
   <javac srcdir="${src}" destdir="${classes}" />
   <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" />
   <copyfile src="${config}/remote.properties" dest="${runDir}\remote.properties" />
   <jar jarfile="${lib}/app.jar" basedir="${classes}" />
 </target>

 <target name="prepareDeploy" depends="compile">  
    <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" />
    <copyfile src="${build}/remotebuild.xml" dest="${deploy}/build.xml" />
    <mkdir dir="${remote}" />   
 </target>
 
 <target name="deploy" depends="prepareDeploy">
    <ant antfile="${build}/deploy.xml" dir="." />
 </target>

</project></source>





Ant task make dir

   <source lang="java">

<project name="foo" default="deploy" basedir=".">

 <target name="init">
   <tstamp/>
   <property name="src" value="src" />
   <property name="build" value="build" />
   <property name="classes" value="classes" />
   <property name="deploy" value="deploy" />
   <property name="config" value="config" />
   <property name="runDir" value="." />
   <property name="local" value="local" />
   <property name="remote" value="remote" />
   <property name="lib" value="lib" />
 </target>
 
 <target name="clean" depends="init">
   <deltree dir="${classes}" />
   <deltree dir="${remote}" />
   <deltree dir="${deploy}" />
   <deltree dir="${lib}" />
 </target>
 
 <target name="prepare" depends="clean">
   <mkdir dir="${classes}" />
   <mkdir dir="${deploy}" />
   <mkdir dir="${lib}" />
 </target>    
 
 <target name="compile" depends="prepare">
   <javac srcdir="${src}" destdir="${classes}" />
   <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" />
   <copyfile src="${config}/remote.properties" dest="${runDir}\remote.properties" />
   <jar jarfile="${lib}/app.jar" basedir="${classes}" />
 </target>

 <target name="prepareDeploy" depends="compile">  
    <copyfile src="${lib}/app.jar" dest="${deploy}/app.jar" />
    <copyfile src="${build}/remotebuild.xml" dest="${deploy}/build.xml" />
    <mkdir dir="${remote}" />   
 </target>
 
 <target name="deploy" depends="prepareDeploy">
    <ant antfile="${build}/deploy.xml" dir="." />
 </target>

</project></source>





Construct path in ant script

   <source lang="java">

<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">

 <target name="build.path">
   <echo message="File: ${basedir}${file.separator}build.xml"/>
   <echo message="Path: ${basedir}${file.separator}build.xml${path.separator}${basedir}${file.separator}build.properties"/>
 </target>

</project></source>





Construct path under unix in ant script

   <source lang="java">

<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">

 <target name="build.path.unix">
   <echo message="File: ${basedir}/build.xml"/>
   <echo message="Path: ${basedir}/build.xml;${basedir}/build.properties"/>
 </target> 

</project></source>





Converted path

   <source lang="java">

<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">

 <target name="properties.custom">
   
   <property name="build.path" 
             value="${basedir}/build.xml:${basedir}/build.properties"/>
   
   
   <path id="build.path.id">  
     <pathelement path="${build.path}"/>
   </path>
   <property name="build.path.property" refid="build.path.id"/>
   
   <echo message="Converted string: ${build.path.property}"/>
   
   <echo message="Path: ${build.path}"/>
 </target>

</project></source>





File set to include a file

   <source lang="java">

<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">


 <fileset dir="." id="uptodate.id">
   <include name="src/jstl/One.java"/>
 </fileset>

</project></source>





Get base directory and file separator

   <source lang="java">

<?xml version="1.0"?> <project name="Apache Ant Properties Project" basedir=".">

 <target name="build.path">
   <echo message="File: ${basedir}${file.separator}build.xml"/>
   <echo message="Path: ${basedir}${file.separator}build.xml${path.separator}${basedir}${file.separator}build.properties"/>
 </target>

</project></source>