0

Ant のヘルプが必要です。Ant を使用してファイルを作成します。これには、いくつかの名前といくつかのフォルダーのサイズ (KB 単位) が含まれ、他の種類のデータ (サイズではない) が同じパターンで含まれます。このようなもの:

build.date=April 01, 2000
folder1=10000
folder2=59093
folder3=646854
folder4=14897123

また、いくつかのフォルダー サイズの合計 (たとえば、foldersum=folder1+folder2) を作成し、それをファイルに書き込みます。

build.date=April 01, 2000
folder1=10000
folder2=59093
folder3=646854
folder4=14897123
foldersum=folder1+folder2
4

1 に答える 1

1

ANT はプログラミング言語ではありません。これを行う最善の方法は、groovyなどのスクリプト言語を埋め込むことです。

次のディレクトリ構造を考えると

├── build.xml
├── folder1
│   ├── file1.txt
│   ├── file2.txt
│   └── file3.txt
├── folder2
│   ├── file4.txt
│   └── file5.txt
└── folder3
    └── file6.txt

「build-report.txt」というファイルを生成します

build.date=April 09,2015
folder1=1
folder2=1
folder3=1
foldersum=3

build.xml

<project name="demo" default="build">

  <available classname="org.codehaus.groovy.ant.Groovy" property="groovy.installed"/>

  <target name="build" depends="init">
    <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>

    <dirset id="dirs" dir="." includes="folder*"/>

    <groovy>
      import java.text.SimpleDateFormat

      def sdf = new SimpleDateFormat("MMMM dd,yyyy")

      new File("build-report.txt").withWriter { w ->

        w.println "build.date=${sdf.format(new Date())}"

        def total = 0

        ant.project.references.dirs.each {
          def dir = new File(it.toString())
          def size = dir.directorySize()

          w.println "${dir.name}=${size}"

          total += size
        }

        w.println "foldersum=${total}"
      }
    </groovy>
  </target>

  <target name="init" unless="groovy.installed">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get dest="${user.home}/.ant/lib/groovy.jar" src="http://search.maven.org/remotecontent?filepath=org/codehaus/groovy/groovy-all/2.4.3/groovy-all-2.4.3.jar"/>
    <fail message="Groovy installed run build again"/>
  </target>

</project>
于 2015-04-06T20:47:45.983 に答える