A simpler way is to do the following:
<length property="num.files">
<fileset dir="dir-to-check" followsymlinks="false"/>
</length>
OR if using it inside of <condition> or <if>:
<if>
<length length="0" when="greater">
<fileset dir="dir-to-check" followsymlinks="false"/>
</length>
<then>
<!-- Code to execute when more than 1 file is present -->
</then>
<else>
<!-- code to execute when dir is empty -->
</else>
</if>
One note, but this might not work too well on older ant versions.
<length> was added as a condition in ant 1.6.3 and I have had some
issues with 1.6.5.
Hope that helps.
James
-----Original Message-----
From: David Weintraub [mailto:[EMAIL PROTECTED]
Sent: Wednesday, July 18, 2007 9:37 AM
To: Ant Users List
Subject: Re: Simple if/else Condition
That's what I get for answering mail past midnight after my brain goes
to sleep. I mean "target" and not "task".
Hmmm. How to tell whether a directory is empty...
You could do this:
<delete dir="mydirectory"/>
<mkdir dir="mydirectory"/>
Then, the answer will be yes. No good.
I haven't tried this, but it might work:
1). Create a Path that contains the files in the directory you want to
test.
<path id="testpath">
<fileset dir="mydirectory"/>
</path>
2). Convert the path to a property:
<property name="myproperty" refid="testpath"/>
3). Now compare that property to an empty string
<condition property="is_directory_empty">
<isequal arg1="${myproperty}" arg2="" trim="true"/>
</condition>
The theory is that if there are no files in the directory, then the
PATH will be empty.
On 7/18/07, Evan J <[EMAIL PROTECTED]> wrote:
> Thank you Qazwart, except that we don't have `task' task but rather
> `target' for antcall. Either way, it should get the job done.
>
> Now I have to figure out to see how I can check whether a directory
> (and its subdirectories) are empty -- Length doesn't help.
>
> On 7/18/07, Qazwart <[EMAIL PROTECTED]> wrote:
> >
> > On Jul 17, 2007, at 11:18 PM, Evan J wrote:
> > > if (condition)
> > > perform some task, i.e. echo message="condition met"
> > > else
> > > perform another task
> >
> > Check out the AntContrib tasks at
<http://ant-contrib.sourceforge.net/
> > tasks/tasks/index.html>.
> > There is actually an <if> ant task at <http://ant-
> > contrib.sourceforge.net/tasks/tasks/if.html>. I've used it quite
> > successfully with Ant 1.7.
> >
> > If you don't want to use optional tasks, you can use the <condition>
> > task like this to emulate an <if><else> task:
> >
> > <condition
> > property="os_is_windows"
> > value="true">
> > <os family="windows"/>
> > </condition>
> > <antcall task="windows_task"/>
> > <antcall task="unix_task"/>
> >
> > <task name="windows_task if="os_is_windows">
> > <blah>
> > </blah>
> > </task>
> >
> > <task name="unix_task" unless="os_is_windows">
> > <blah>
> > </blah>
> > </task>
> >
> > David Weintraub
> > [EMAIL PROTECTED]
> > [EMAIL PROTECTED]
> >
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
--
David Weintraub
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]