Echo each file in a set of files with size, date and time

I am converting a DOS batch file to Ant. At the end of the batch file, I print a list of the files copied, including size, date and time, using the DOS command dir. I would like to do the same at the end of the Ant script. So far I:

<!-- LIST COPIED FILES -->
<target name="summary" depends="backup">
    <fileset id="zipfiles" dir="${dest}" casesensitive="yes">
        <include name="*.zip"/>
    </fileset>  

    <property name="prop.zipfiles" refid="zipfiles"/>
    <echo>${prop.zipfiles}</echo>       
</target>

How can I change above to print each file on a separate line with size, date and time?

+3
source share
2 answers

There is a solution based on an external Tasksuite called Ant Flaka . Using Ant Flaka, you get access to the main files and their properties (name, time, size ..) from your set of files. no need to open an external process with apply / cmd

<project name="demo" xmlns:fl="antlib:it.haefelinger.flaka">
    <fl:install-property-handler />

    <!-- as fileset has no absolute pathnames we need
         path combined with pathconvert -->
    <path id="foobar">
        <fileset dir="/home/gilreb/Downloads">
            <include name="*.zip"/>
        </fileset>
    </path>

    <pathconvert property="zipfiles" refid="foobar"/>

    <!-- iterate over the listentries, get access to
         the underlying fileobject and echo its properties -->
    <fl:for var="f" in="split('${zipfiles}', ':')">
        <echo>
      #{  format('filename %s, last modified %tD, size %s bytes', f.tofile.toabs,f.tofile.mtime,f.tofile.size)  }
     </echo>
    </fl:for>

</project>

output =

...  
   [echo]       filename /some/path/apache-ant-1.8.2-bin.zip, last modified 03/16/11, size 10920710 bytes
     [echo]      
     [echo]       filename /some/path/apache-ant-1.8.2-src.zip, last modified 03/16/11, size 8803388 bytes
     [echo]      
     [echo]       filename /some/path/apache-ant-antunit-1.1-bin.zip, last modified 04/17/11, size 70477 bytes
...
+3

, Ant.

.

Apply dir . :

<apply executable="cmd" osfamily="windows">
<arg value="/c"/>
<arg value="dir"/>
<fileset dir=".">
  <include name="*.zip"/>
</fileset>
</apply>

, , zip , - ( zip ) Uptodate.

+2

All Articles