Hier ist eine etwas grausame Art und Weise davon durch script
mit javascript
Sprache in Ant tun:
<scriptdef name="getfilenamesfromzipfile" language="javascript">
<attribute name="zipfile" />
<attribute name="property" />
<![CDATA[
importClass(java.util.zip.ZipInputStream);
importClass(java.io.FileInputStream);
importClass(java.util.zip.ZipEntry);
importClass(java.lang.System);
file_name = attributes.get("zipfile");
property_to_set = attributes.get("property");
var stream = new ZipInputStream(new FileInputStream(file_name));
try {
var entry;
var list;
while ((entry = stream.getNextEntry()) != null) {
if (!entry.isDirectory()) {
list = list + entry.toString() + "\n";
}
}
project.setNewProperty(property_to_set, list);
} finally {
stream.close();
}
]]>
</scriptdef>
die dann in einem <target>
aufgerufen werden kann:
<target name="testzipfile">
<getfilenamesfromzipfile
zipfile="My.zip"
property="file.names.from.zip.file" />
<echo>List of files: ${file.name.from.zip.file}.</echo>
</target>
Jede bessere Lösung ist willkommen.
Dies ist ein besserer Gesamtansatz. Später stellte ich jedoch fest, dass ich mehr Informationen aus dem ZIP-Dateiinhalt extrahieren musste, d. H. Letztes Datum der Änderung/Zeitstempel, Größe, Prüfsumme usw., und ich fühlte, dass das Scripting eine leichte Verfeinerung ermöglicht. Trotzdem möchte ich Ihre Antwort für meine ursprüngliche Frage akzeptieren. – Malvon
@Malvon für Änderung/Timestamp/Größe können Sie Ant Addon Flaka nehmen und es mit Zipfileset ähnlich dem letzten Ausschnitt meiner Antwort hier verwenden => http://StackOverflow.com/A/21891513, auch Ant hat eine Prüfsummenaufgabe = > https://ant.apache.org/manual/Tasks/checksum.html; Wenn Sie Ant Flaka benutzen, nehmen Sie die letzte Version hier => https://github.com/greg2001/ant-flaka; – Rebse
@ Malvon P. S. ein anderes Flaka-Beispiel hier => http://stackoverflow.com/a/5992436/130683, sonst wird es mit Script komplizierter, siehe hier => http://stackoverflow.com/a/14740667/130683 – Rebse