Getting file attributes in Ant

December 2, 2003 – 09:53 | java

(Jan Materne on Ant User ML) I used the <script> task for iterating over the selected files of a fileset, instatiate a java.io.File object and gets that filesize using its length() method. As a result I stored the value as ant property (with common prefix).

XML:
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <project name="test" basedir="." default="main">
  3.  
  4.     <target name="main">
  5.         <!-- for what files the size is required? -->
  6.         <fileset id="fs" dir="test"/>
  7.  
  8.         <!-- use java.io.File in script task for getting that size -->
  9.         <script language="javascript"> <![CDATA[
  10.  
  11.             // iterate over the files selected by the fileset defined above
  12.             // code adapted from copy task implementation
  13.  
  14.             // Get the DirectoryScanner
  15.             // project is an object defined by script task
  16.             ds = fs.getDirectoryScanner(project);
  17.  
  18.             // Get the source files (array)
  19.             srcFiles = ds.getIncludedFiles();
  20.  
  21.             // iterate over that array
  22.             for (i=0; i<srcFiles.length; i++) {
  23.                 filename = srcFiles[i];
  24.                 file = new java.io.File(fs.getDir(project), filename);
  25.                 size = file.length();
  26.  
  27.                 // store the size an a property
  28.                 // prefix.filename=size
  29.                 project.setProperty("filesize."+filename,size);
  30.             }
  31.         ]]> </script>
  32.  
  33.         <!-- prints the sizes -->
  34.         <echoproperties prefix="filesize"/>
  35.  
  36.     </target>
  37.  
  38. </project>

Trackback from your site, or follow the comments in RSS.

Post a Comment