ant如何检查驱动器D是否存在
How can ant check if drive D exists
我想复制一些文件到D盘,但是在测试环境下只有C盘,所以我想添加条件先检查是否有D盘,否则复制文件到C。
<if>
<available file="D:\" />
<then>
<copy todir="D:shared/CountrySettings" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>
</then>
<else>
<copy todir="C:shared/CountrySettings" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>
</else>
</if>
好像不对,请问如何解决?
看来主要问题是您缺少目标目录中的第一个斜杠。 D:shared/CountrySettings
应该是 D:/shared/CountrySettings
(或者 D:\shared\CountrySettings 因为你在 Windows)。
我还强烈建议尽可能使用原生 Ant 的 condition
任务,而不是 ant-contrib 的 if/else 功能。
<condition property="dest.dir" value="D:\shared\CountrySettings" else="C:\shared\CountrySettings">
<available file="D:\" />
</condition>
<copy todir="${dest.dir}" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>
我想复制一些文件到D盘,但是在测试环境下只有C盘,所以我想添加条件先检查是否有D盘,否则复制文件到C。
<if>
<available file="D:\" />
<then>
<copy todir="D:shared/CountrySettings" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>
</then>
<else>
<copy todir="C:shared/CountrySettings" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>
</else>
</if>
好像不对,请问如何解决?
看来主要问题是您缺少目标目录中的第一个斜杠。 D:shared/CountrySettings
应该是 D:/shared/CountrySettings
(或者 D:\shared\CountrySettings 因为你在 Windows)。
我还强烈建议尽可能使用原生 Ant 的 condition
任务,而不是 ant-contrib 的 if/else 功能。
<condition property="dest.dir" value="D:\shared\CountrySettings" else="C:\shared\CountrySettings">
<available file="D:\" />
</condition>
<copy todir="${dest.dir}" overwrite="true">
<fileset dir="${dist.CountrySettings.dir}/cfg" />
</copy>