@@ -287,18 +287,22 @@ public static List<File> unzipFileByKeyword(final File zipFile,
287287 List <File > files = new ArrayList <>();
288288 ZipFile zip = new ZipFile (zipFile );
289289 Enumeration <?> entries = zip .entries ();
290- if (isSpace (keyword )) {
291- while (entries .hasMoreElements ()) {
292- ZipEntry entry = ((ZipEntry ) entries .nextElement ());
293- if (!unzipChildFile (destDir , files , zip , entry )) return files ;
294- }
295- } else {
296- while (entries .hasMoreElements ()) {
297- ZipEntry entry = ((ZipEntry ) entries .nextElement ());
298- if (entry .getName ().contains (keyword )) {
290+ try {
291+ if (isSpace (keyword )) {
292+ while (entries .hasMoreElements ()) {
293+ ZipEntry entry = ((ZipEntry ) entries .nextElement ());
299294 if (!unzipChildFile (destDir , files , zip , entry )) return files ;
300295 }
296+ } else {
297+ while (entries .hasMoreElements ()) {
298+ ZipEntry entry = ((ZipEntry ) entries .nextElement ());
299+ if (entry .getName ().contains (keyword )) {
300+ if (!unzipChildFile (destDir , files , zip , entry )) return files ;
301+ }
302+ }
301303 }
304+ } finally {
305+ zip .close ();
302306 }
303307 return files ;
304308 }
@@ -358,10 +362,12 @@ public static List<String> getFilesPath(final File zipFile)
358362 throws IOException {
359363 if (zipFile == null ) return null ;
360364 List <String > paths = new ArrayList <>();
361- Enumeration <?> entries = new ZipFile (zipFile ).entries ();
365+ ZipFile zip = new ZipFile (zipFile );
366+ Enumeration <?> entries = zip .entries ();
362367 while (entries .hasMoreElements ()) {
363368 paths .add (((ZipEntry ) entries .nextElement ()).getName ());
364369 }
370+ zip .close ();
365371 return paths ;
366372 }
367373
@@ -388,11 +394,13 @@ public static List<String> getComments(final File zipFile)
388394 throws IOException {
389395 if (zipFile == null ) return null ;
390396 List <String > comments = new ArrayList <>();
391- Enumeration <?> entries = new ZipFile (zipFile ).entries ();
397+ ZipFile zip = new ZipFile (zipFile );
398+ Enumeration <?> entries = zip .entries ();
392399 while (entries .hasMoreElements ()) {
393400 ZipEntry entry = ((ZipEntry ) entries .nextElement ());
394401 comments .add (entry .getComment ());
395402 }
403+ zip .close ();
396404 return comments ;
397405 }
398406
0 commit comments