2011-01-09 69 views
3

这真的很容易选择具有特定文件名,或者使用ANT fileset文件类型的文件时,但是我还没有没有想出如何写一个文件集删除与以点开头的文件名中的所有文件,如.builtpath.hgignore,但不包括.htaccess;Apache Ant:用文件集选择文件?

这是我当前的文件:

<delete includeemptydirs="true"> 

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

</delete> 

回答

2

建议你试试:

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

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

有一个隐含的包含的所有文件,如果你不指定任何包括规则 - 因此没有必要指定“全局” include

有一点要注意 - 设置includeemptydirs真正使用与删除任务文件集时,将删除任何空目录。如果目录不包含任何文件,则该目录将被视为空。换句话说:包含名为'.htaccess'的文件的目录不会被删除,但那些'.htaccess'文件将不会被删除 - 希望这就是您所需要的。