user1248327
user1248327

Reputation: 11

NANT Script Check if Directory is Empty and then delete

I am trying to do following. I have a root folder and under that 4 subfolders.

  1. Check if a Directory under root is empty or not.
  2. if yes, delete the directory.

Can you please help.

Upvotes: 1

Views: 1061

Answers (1)

The Chairman
The Chairman

Reputation: 7187

NAnt's delete task in addition with NAntContrib's fileset::has-files function will do the trick.

UPDATE: Here is an example assuming you have a root folder named foo and subfolders named bar1 to bar4:

<target name="go">
  <loadtasks assembly="C:\YourPathToNAntContrib\bin\NAnt.Contrib.Tasks.dll" />
  <property
    name="root"
    value="C:\foo" />
  <property
    name="subfolders"
    value="bar1,bar2,bar3,bar4" />
  <foreach
    item="String"
    in="${subfolders}"
    delim=","
    property="subfolder">
    <property
      name="basedir"
      value="${path::combine(root, subfolder)}" />
    <fileset
      id="files"
      basedir="${basedir}">
      <include name="**/*" />
    </fileset>
    <if test="${not fileset::has-files('files')}">
      <delete dir="${basedir}" />
    </if>
  </foreach>
</target>

Upvotes: 1

Related Questions