@@ -78,18 +78,7 @@ public ZipOutputStream(OutputStream outputStream, char[] password, Zip4jConfig z
7878
7979 public void putNextEntry (ZipParameters zipParameters ) throws IOException {
8080 verifyZipParameters (zipParameters );
81-
82- ZipParameters clonedZipParameters = new ZipParameters (zipParameters );
83- if (isZipEntryDirectory (zipParameters .getFileNameInZip ())) {
84- clonedZipParameters .setWriteExtendedLocalFileHeader (false );
85- clonedZipParameters .setCompressionMethod (CompressionMethod .STORE );
86- clonedZipParameters .setEncryptFiles (false );
87- clonedZipParameters .setEntrySize (0 );
88-
89- if (zipParameters .getLastModifiedFileTime () <= 0 ) {
90- clonedZipParameters .setLastModifiedFileTime (System .currentTimeMillis ());
91- }
92- }
81+ ZipParameters clonedZipParameters = cloneAndPrepareZipParameters (zipParameters );
9382 initializeAndWriteFileHeader (clonedZipParameters );
9483
9584 //Initialisation of below compressedOutputStream should happen after writing local file header
@@ -257,4 +246,21 @@ private boolean writeCrc(FileHeader fileHeader) {
257246
258247 return fileHeader .getAesExtraDataRecord ().getAesVersion ().equals (AesVersion .ONE );
259248 }
249+
250+ private ZipParameters cloneAndPrepareZipParameters (ZipParameters zipParameters ) {
251+ ZipParameters clonedZipParameters = new ZipParameters (zipParameters );
252+
253+ if (isZipEntryDirectory (zipParameters .getFileNameInZip ())) {
254+ clonedZipParameters .setWriteExtendedLocalFileHeader (false );
255+ clonedZipParameters .setCompressionMethod (CompressionMethod .STORE );
256+ clonedZipParameters .setEncryptFiles (false );
257+ clonedZipParameters .setEntrySize (0 );
258+ }
259+
260+ if (zipParameters .getLastModifiedFileTime () <= 0 ) {
261+ clonedZipParameters .setLastModifiedFileTime (System .currentTimeMillis ());
262+ }
263+
264+ return clonedZipParameters ;
265+ }
260266}
0 commit comments