NANT脚本检查目录是否为空,然后删除

时间:2012-10-05 16:21:38

标签: nant

我正在尝试做以下事情。 我有一个根文件夹,并在该4个子文件夹下。

  1. 检查root下的目录是否为空。
  2. 如果是,请删除目录。
  3. 你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

NAnt的delete任务以及NAntContrib的fileset::has-files功能都可以解决这个问题。

更新:以下示例假设您有一个名为foo的根文件夹和名为bar1bar4的子文件夹:

<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>