Android Kotlin compresses multiple files into zip
If there is a directory, add
/
to theentry
name and recursively analyze it
Now assume that there are url
of a series of images in the imgUrls
array, we download them and name them according to index
and compress them
getHttpContent()
function details, see Android Kotlin use GET method to download data to ByteArray
fun packImgs(f: File): Boolean{
f.parentFile?.let { if(!it.exists()) it.mkdirs() }
if(!f.exists()) f.createNewFile()
val zip = ZipOutputStream(CheckedOutputStream(f. outputStream(), CRC32()))
zip. setLevel(9)
var succeed = true
for(i in imgUrls){
zip.putNextEntry(ZipEntry("${imgUrls.indexOf(i)}.jpg"))val s = getHttpContent(i) ?.let { zip.write(it); true }?:false
if(!s) succeed = s
zip. flush()
}
zip. close()
return succeed
}