2011-01-09 67 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'文件將不會被刪除 - 希望這就是您所需要的。