DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12267>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12267 Add ability to unzip into separate folders Summary: Add ability to unzip into separate folders Product: Ant Version: 1.5 Platform: All OS/Version: All Status: NEW Severity: Enhancement Priority: Other Component: Core tasks AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] This is a request for the ant unzip task to be able to unzip a <fileset> of zip files to newly created folders based on the zip file name. In other words, giving the unzip task a number of zip files, rather than expand them into the folder specified by the dest attribute, use the base name of the zip file as the name of a new subfolder created in dest, then expand the contents of the zip file into that subfolder. For example, the following unzip task <unzip dest="extracts" separate="true"> <fileset dir="${zipFolder}" > <include name="*.zip" > </fileset> </unzip>, where zipFolder contains buildA.zip and buildB.zip, would expand buildA.zip to extracts/buildA and buildB.zip to extracts/buildB. The following additional code inserted at the beginning of org.apache.tools.ant.taskdefs.Expand.expandFile(FileUtils, File, File) implements this ability: protected void expandFile(FileUtils fileUtils, File srcF, File destDir) { File dir = destDir; if (separate) { String fileNameBase = srcF.getName(); fileNameBase = fileNameBase.substring(0, fileNameBase.indexOf('.')); dir = new File(destDir,fileNameBase); dir.mkdir(); } log("Expanding: " + srcF + " into " + dir, Project.MSG_INFO); ZipInputStream zis = null; [continues unchanged] I don't think this accounts for zip files in subdirectories - which would probably need to have the relative path recreated to avoid filename conflicts. Mundane info: separate is defined as private boolean separate = false; // false default maintains previous behaviour when not used. and the attribute is made available by /** * Should files in filesets or src be extracted to new subdirectories * of the same name? */ public void setSeparate(boolean b){ separate = b; } -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
