自 Apache Ant 1.6 起.
更改文件或指定目录中所有文件的属性。目前,它仅在 Windows 下有效。四种可能的权限中的每一种都有其自己的属性,与 attrib 命令的参数匹配。
可以使用嵌套的 <fileset>、<dirset> 和 <filelist> 元素来指定 FileSet、DirSet 或 FileList。
自 Ant 1.7 起,此任务支持作为嵌套元素的任意 资源集合。
默认情况下,此任务除非检测到它在 Windows 系统上运行,否则不会执行任何操作。如果您确定您的 PATH 上有一个与 Windows 命令行兼容的 attrib 可执行文件,您可以使用任务的 os 属性并将它的值设置为您的当前操作系统。
有关平台无关的替代方案,请参见 setpermissions 任务。
| 属性 | 描述 | 必需 |
|---|---|---|
| file | 必须更改其权限的文件或目录。 | 是,或嵌套的 <fileset/list> 元素 |
| readonly | 只读权限。 | 至少四个中的一个 |
| archive | 存档权限。 | |
| system | 系统权限。 | |
| hidden | 隐藏权限。 | |
| type | “file”、“dir”或“both”之一。如果设置为“file”,则只更改普通文件的权限。如果设置为“dir”,则只考虑目录。 注意:type 属性不适用于嵌套的 dirset——dirset 始终隐式地将 type 假设为“dir”。 |
否;默认值为“file” |
| verbose | 是否在执行后打印摘要。 | 否;默认为“false” |
| os | 可以在其上执行命令的操作系统列表。 | 否 |
| osfamily | 在 <os> 条件中使用的操作系统系列。 | 否;默认为“windows” |
使 run.bat 文件只读且隐藏。
<attrib file="${dist}/run.bat" readonly="true" hidden="true"/>
使 ${meta.inf} 下的所有 .xml 文件可读。
<attrib readonly="false">
<fileset dir="${meta.inf}" includes="**/*.xml"/>
</attrib>
使 shared/sources1 下的所有文件(除了任何名为 trial 的目录下的文件)只读且存档。此外,属于具有 id 为 other.shared.sources 的 FileSet 的所有文件都将获得相同的属性。
<attrib readonly="true" archive="true">
<fileset dir="shared/sources1">
<exclude name="**/trial/**"/>
</fileset>
<fileset refid="other.shared.sources"/>
</attrib>