While Archiving the empty directories are not archived to the archive.
----------------------------------------------------------------------
Key: COMPRESS-105
URL: https://issues.apache.org/jira/browse/COMPRESS-105
Project: Commons Compress
Issue Type: Bug
Environment: 64 bit Windows Vista, JDK1.4.1_11
Reporter: Soundararajan Thevaraj
Fix For: 1.0
I am trying to create a zip archive. I am having a empty directory "test" .
When i try to create it to archive . The archive created but the test folder is
created as file. And also I got the below exception.
Temp file created at
C:\Users\Soundar\AppData\Local\Temp\sample5278197872513888977.zip
Exception in thread "main" java.io.IOException: This archives contains unclosed
entries.
at
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:343)
at
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close(ZipArchiveOutputStream.java:550)
at
com.tcs.tools.archive.test.ArchiveTest.createArchive(ArchiveTest.java:64)
at com.tcs.tools.archive.test.ArchiveTest.main(ArchiveTest.java:119)
Code used
-------------
protected File createArchive(String archivename) throws Exception {
ArchiveOutputStream out = null;
OutputStream stream = null;
ArchiveStreamFactory factory = new ArchiveStreamFactory();
try {
File archive = File.createTempFile("sample", "." +
archivename);
System.out.println("Temp file created at " +
archive.getAbsolutePath());
List archiveList = new ArrayList();
stream = new FileOutputStream(archive);
out = factory.createArchiveOutputStream(archivename,
stream);
final File file7 = new
File("C:\\Users\\Soundar\\Desktop\\test");
addArchiveEntry(out, "test", file7);
System.out.println("Going to process directory");
System.out.println("Directory Name =" +
file7.getName());
ArchiveEntry entry = out.createArchiveEntry(file7,
"test");
out.putArchiveEntry(entry);
IOUtils.copy(new FileInputStream(file7), out);
out.closeArchiveEntry();
out.finish();
return archive;
} finally {
if (out != null) {
out.close();
} else if (stream != null) {
stream.close();
}
}
}
Note
------
I tried the same archiving using the compressed zip of Windows Vista default
feature. It creates the Sample.zip which contains the empty test folder as
archived.
I know there is a work around using java.util.zip.zipEntry. But is there a
work around in our Compress itself?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira