dateboyTom
dateboyTom

Reputation: 109

how to write ant script to check a given string is a file or directory

how to use write ant script to check a file is a file or directory???
Given a string "C:\test\application\Services\Test"

I need to know this string
"C:\test\application\Services\Test"

is a file or directory,

I use following script to check, looks like cannot decide it is s a file or directory

<if>
    <available file="${sourceFile}" />
    <then>
        <echo> It is a File ${sourceFile}</echo>
        <copyfile src="${sourceFile}" dest="${targetFile}" />
        <echo> Single file copied:  sourceFile = ${sourceFile}</echo>
    </then>
    <else>
        <if>
            <available file="${dir}" type="dir" />
            <then>
                <echo> It is a Directory:  ${sourceFile}</echo>
                <copy todir="${targetFile}">
                    <fileset dir="${sourceFile}" />
                </copy>
                <echo> Single dir copied:  sourceFile = ${sourceFile}</echo>
            </then>
        </if>
    </else>
</if>

How to use ant to do it???
Thanks

Upvotes: 0

Views: 135

Answers (1)

Mark O&#39;Connor
Mark O&#39;Connor

Reputation: 77951

The if/else tasks are not part of standard ANT (requires 3rd party jar)

Conditional execution of targets is performed as follows:

<project name="demo" default="process">

    <property name="sourceFile" location="C:\test\application\Services\Test"/>

    <available property="sourceFile.is.a.file" file="${sourceFile}" type="file"/>
    <available property="sourceFile.is.a.dir" file="${sourceFile}" type="dir"/>

    <target name="process" depends="process-file,process-dir"/>

    <target name="process-dir" if="sourceFile.is.a.dir">
        <echo message="${sourceFile} is a dir"/>
    </target>

    <target name="process-file" if="sourceFile.is.a.file">
        <echo message="${sourceFile} is a file"/>
    </target>

</project>

Upvotes: 2

Related Questions