[DEV] 기록

[Java] zip 파일에서 원하는 파일 추출해서 저장하는 방법

꾸준함. 2022. 5. 29. 03:21

개요

클라이언트에서 zip 파일을 업로드했을 때 zip 파일 내 tar.gz 파일만 추출해서 NAS에 저장하도록 로직을 바꿔야 했습니다.

찾아본 결과 추출할 파일명만 안다면 생각보다 간단하게 코드를 작성할 수 있었습니다.

 

코드


 

비고

같은 Java 8버전이더라도 JDK-8223197 버전 이전 버전을 사용할 경우 FileSystem.newFileSystem(zipFilePath, null) 코드에서 ambiguous가 뜰 것입니다.

https://bugs.openjdk.java.net/browse/JDK-8223197

 

[JDK-8223197] Release Note: Added FileSystems.newFileSystem(Path, Map<String, ?>) Method - Java Bug System

Three new methods have been added to `java.nio.file.FileSystems` to make it easier to use file system providers that treat the contents of a file as a file system. - `newFileSystem(Path)` - `newFileSystem(Path, Map<String, ?>)` - `newFileSystem(Path, Map<S

bugs.openjdk.java.net

이전 버전일 경우 FileSystem.newFileSystem(zipFilePath, ClassLoader.getSystemClassLoader());로 하면 될 것입니다.

 

참고

https://stackoverflow.com/questions/32179094/how-to-extract-specific-file-in-a-zip-file-in-java

 

How to extract specific file in a zip file in java

I need to provide a view of zip file to customer in system, and allow customers download choosed files. parse the zip file and show on the web page. and remember every zipentry location(for example

stackoverflow.com

 

반응형