我需要在运行时使用Ant选择一个文件,现在我设法用exec和zenity这样做:
<exec executable="zenity" outputproperty="file">
<arg line="--file-selection" />
<arg line='--title "Pick a file to upload"' />
</exec>
<echo message="Uploading ${file} ..."/>
我想知道是否有任务要执行此操作,因为这个是依赖于平台的。
答案 0 :(得分:1)
通常,在运行Ant时不使用用户输入。您可以使用属性启动Ant时选择文件:
$ ant -Dfile=my_file
<project>
<echo>You're using file "${file}"</echo>
</project>
但是,您可以使用<input>任务:
<project>
<input addproperty="file"
defaultvalue="foo.txt"
message="What file do you want?"/>
<echo>You've chosen file "${file}"</echo>
</project>
$ ant
What file do you want? [foo.txt]
my.file.txt
You've chosen file "my.file.txt"
这样做你想要的吗?
答案 1 :(得分:0)
我最终创建了一个jar文件来执行脏工作,这就是我所做的:
1-下载并编译了这个FileChooser示例:http://www.roseindia.net/tutorial/java/core/files/javafilechooser.html,只将f.getName()更改为f.getAbsolutePath()
2-添加了一个java任务:
<java jar="FileChooser.jar" outputproperty="filepath" fork="true"/>
现在我只需要在其他平台上携带FileChooser.jar,它不是完美的但可以胜任。
答案 2 :(得分:-2)
AntForm提供了一个fileSelectionProperty表单,在这里也可能会有所帮助。这是如何使用它的一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<!--
getFile
- get file name with a file selection box
-->
<project name="files" default="-getFile" basedir="."
xmlns:antform="antlib:com.sardak.antform">
<!--
antform
http://antforms.sourceforge.net/
provides pop-up forms and menus for user input
<antform>
<antmenu>
-->
<taskdef uri="antlib:com.sardak.antform"
resource="com/sardak/antform/taskdefs.properties"
classpath="../../lib/antform.jar"/>
<target name="-getFile">
<!--
pop-up form
user selection form for the file selection
-->
<antform:antform title="Please Select a File">
<fileSelectionProperty label="File: "
property="file.selection"
directoryChooser="false"/>
<controlbar>
<button label="OK" type="ok"/>
<button label="QUIT" target="Quit"/>
</controlbar>
</antform:antform>
<echo message="You chose file ${file.selection}"/>
</target>
</project>