如何从filtersets中排除图像和其他二进制文件?过滤器操作会在复制操作后破坏图像。我想它可能会破坏MP3或视频等其他二进制文件。
这是复制任务:
<target name="copyCore" description="Copy core files and folders">
<copy todir="${deploy.dir}" includeEmptyDirs="no">
<fileset dir="${src.dir}">
<patternset refid="core.files" />
</fileset>
<filterset refid="myFilterSet"></filterset>
</copy>
</target>
这是filterset:
<filterset id="myFilterSet">
<filter token="author" value="${author}" />
<filter token="title" value="${title}" />
<filter token="module" value="${module}" />
<filter token="lang" value="${lang}" />
<filter token="buildDate" value="${build.date}" />
<filter token="buildTime" value="${build.time}" />
</filterset>
有没有办法根据过滤器中的文件类型排除文件?
答案 0 :(得分:1)
在patternset,exclude
二进制文件类型中按文件扩展名。
<exclude name="**/*.mp3"/>
<exclude name="**/*.mp4"/>
和/或,include
只需要文件扩展名所需的文本文件类型。
<include name="**/*.txt"/>
<include name="**/*.py"/>
专门回答您的问题,过滤器本身没有办法按类型或名称模式包含或排除文件。
Filterset旨在过滤文本文件。 Ant手册页说:
注意:在操作中使用filterset时,文件为 在文本模式下处理并逐行应用过滤器。这个 意味着复制操作通常会破坏二进制文件。 在应用过滤器时,您应该确保文件集是 过滤的都是文本文件。
您需要在 之前排除二进制文件。它们会命中过滤网。