package Ġcom . ing by r . v dm . utils Ċ Ċ import Ġorg . apache . commons . compress . arch ivers . Archive InputStream Ċ import Ġorg . apache . commons . compress . arch ivers . Archive Stream Factory Ċ import Ġorg . apache . commons . compress . compress ors . gzip . G zip Compressor InputStream Ċ import Ġorg . apache . commons . io . Filename Utils Ċ import Ġorg . apache . commons . io . IO Utils Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ Ċ object ĠFile Compress Utils Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlog : ĠLogger Ġ= ĠLoggerFactory . getLogger ( File Compress Utils :: class . java ) ĊĊĠĠĠ Ġfun Ġde compress ( source File : ĠFile , Ġdest File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Extension Ġ= ĠFilename Utils . getExtension ( source File . name ) ĊĠĠĠĠĠĠĠ Ġlog . debug (" de compress Ġthe Ġ${ source File . name } Ġas Ġ$ file Extension ") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( file Extension ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" gz " Ġ-> Ġde compress Gz ( source File , Ġdest File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġde compress Us ual File ( source File , Ġdest File , Ġfile Extension ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDe compress Ġtar . gz Ġfile . Ġtar . gz Ġ-> Ġtar Ġ-> Ġde compressed Ġfile ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġde compress Gz ( source File : ĠFile , Ġdest File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtmp Tar File Ġ= ĠAttributes . TMP _ DIR . resolve (" tmp . tar "). to File () ĊĠĠĠĠĠĠĠ ĠG zip Compressor InputStream ( source File . inputStream (). buffered ()). use Ġ{ Ġg is Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIO Utils . copy ( gis , Ġtmp Tar File . output Stream ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġde compress Us ual File ( tmp Tar File , Ġdest File , ĠArchive Stream Factory . T AR ) ĊĠĠĠĠĠĠĠ ĠFiles . delete ( tmp Tar File . to Path ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDe compress Ġusual Ġcompressed Ġfiles . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġde compress Us ual File ( source File : ĠFile , Ġdest File : ĠFile , ĠfileType : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( fileType . isNull Or Blank ()) Ġ{ Ġ// Ġtry Ġto Ġde compress Ġunknown Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArchive Stream Factory (). create Archive InputStream ( source File . inputStream ()). use Ġ{ Ġa is Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Archive Stream And Save ( ais , Ġdest File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArchive Stream Factory (). create Archive InputStream ( fileType , Ġsource File . inputStream ()). use Ġ{ Ġa is Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Archive Stream And Save ( ais , Ġdest File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġread Archive Stream And Save ( ais : ĠArchive InputStream , Ġdest File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentry Ġ= Ġa is . next Entry ĊĠĠĠĠĠĠĠ Ġlog . debug (" de compress Ġ${ entry . name } Ġ( size : Ġ${ entry . size }) ") ĊĠĠĠĠĠĠĠ ĠIO Utils . copy ( ais , Ġdest File . output Stream ()) ĊĠĠĠ Ġ} Ċ }