Swift实现文件压缩和解压示例代码
项目中有时候需要文件下载解压,项目中选择了ZipArchive,实际使用也比较简单,直接调用解压和压缩方法即可.
压缩
@IBActionfunczipAction(_sender:UIButton){ letimageDataPath=Bundle.main.bundleURL.appendingPathComponent("FlyElephant").path zipPath=tempZipPath() letsuccess=SSZipArchive.createZipFile(atPath:zipPath!,withContentsOfDirectory:imageDataPath) ifsuccess{ print("压缩成功---\(zipPath!)") } }
#解压
@IBActionfuncunZipAction(_sender:UIButton){ guardletzipPath=self.zipPathelse{ return } guardletunzipPath=tempUnzipPath()else{ return } letsuccess=SSZipArchive.unzipFile(atPath:zipPath,toDestination:unzipPath) if!success{ return } print("解压成功---\(unzipPath)") varitems:[String] do{ items=tryFileManager.default.contentsOfDirectory(atPath:unzipPath) }catch{ return } for(index,item)initems.enumerated(){ print("\(index)--文件名称---\(item)") } }
压缩和解压路径:
functempZipPath()->String{ varpath=NSSearchPathForDirectoriesInDomains(.cachesDirectory,.userDomainMask,true)[0] path+="/\(UUID().uuidString).zip" returnpath } functempUnzipPath()->String?{ varpath=NSSearchPathForDirectoriesInDomains(.cachesDirectory,.userDomainMask,true)[0] path+="/\(UUID().uuidString)" leturl=URL(fileURLWithPath:path) do{ tryFileManager.default.createDirectory(at:url,withIntermediateDirectories:true,attributes:nil) }catch{ returnnil } returnurl.path }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。