【问题标题】:Apache Ant: Selecting files with fileset?Apache Ant:使用文件集选择文件?
【发布时间】:2011-01-10 02:54:19
【问题描述】:

在 ANT 中使用fileset 选择具有特定文件名或文件类型的文件真的很容易,但是我还没有弄清楚如何编写一个文件集来删除文件名以点开头的所有文件,例如.builtpath.hgignore,但不包括.htaccess

这是我当前的文件:

<delete includeemptydirs="true">

    <fileset dir="${temp.dir}/fromRepo">            
        <exclude name=".htaccess"/>
        <include name="**/*" /> <!-- How to select files starting with .?!-->
    </fileset>

</delete>

【问题讨论】:

    标签: ant build


    【解决方案1】:

    建议你试试:

    <delete includeemptydirs="true">
        <fileset dir="${temp.dir}/fromRepo">            
            <exclude name="**/.htaccess"/>
        </fileset>
    </delete>
    

    如果您没有指定任何通配符 - 如".htaccess",那么该规则将只匹配文件集的顶级目录中的确切文件名,即“.htaccess” .将目录通配符 ** 添加到 .htaccess 将告诉 Ant 从删除文件集的目录层次结构下找到的所有名为“.htaccess”的文件中排除。

    如果您不指定任何包含规则,所有文件都会隐含包含 - 因此无需指定“全局”include

    需要注意的一点 - 设置 includeemptydirs true 将在使用带有删除任务的文件集时删除所有空目录。只有不包含任何文件的目录才会被认为是空的。换句话说:包含名为 '.htaccess' 的文件的目录不会被删除,但那些包含 '.htaccess' 文件的目录不会被删除 - 希望这是你需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多