Swift实现文件压缩和解压示例代码

 更新时间:2017年03月23日 09:17:48   作者:FlyElephant  
本篇文章主要介绍了Swift实现文件压缩和解压示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

项目中有时候需要文件下载解压,项目中选择了ZipArchive,实际使用也比较简单,直接调用解压和压缩方法即可.

压缩

@IBAction func zipAction(_ sender: UIButton) {
  let imageDataPath = Bundle.main.bundleURL.appendingPathComponent("FlyElephant").path

  zipPath = tempZipPath()

  let success = SSZipArchive.createZipFile(atPath: zipPath!, withContentsOfDirectory: imageDataPath)
  if success {
   print("压缩成功---\(zipPath!)")
  }
 }

#解压

@IBAction func unZipAction(_ sender: UIButton) {
  guard let zipPath = self.zipPath else {
   return
  }

  guard let unzipPath = tempUnzipPath() else {
   return
  }

  let success = SSZipArchive.unzipFile(atPath: zipPath, toDestination: unzipPath)
  if !success {
   return
  }
  print("解压成功---\(unzipPath)")
  var items: [String]
  do {
   items = try FileManager.default.contentsOfDirectory(atPath: unzipPath)
  } catch {
   return
  }

  for (index, item) in items.enumerated() {
   print("\(index)--文件名称---\(item)")
  }
 }

压缩和解压路径:

func tempZipPath() -> String {
  var path = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0]
  path += "/\(UUID().uuidString).zip"
  return path
 }

 func tempUnzipPath() -> String? {
  var path = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0]
  path += "/\(UUID().uuidString)"
  let url = URL(fileURLWithPath: path)

  do {
   try FileManager.default.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil)
  } catch {
   return nil
  }


  return url.path
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • LeetCode 刷题 Swift 两个数组的交集

    LeetCode 刷题 Swift 两个数组的交集

    这篇文章主要为大家介绍了LeetCode 刷题 Swift 两个数组的交集示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Swift方法调度之类的普通方法底层探究

    Swift方法调度之类的普通方法底层探究

    这篇文章主要介绍了Swift-方法调度-类的普通方法底层探究,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • 浅析Swift中struct与class的区别(汇编角度底层分析)

    浅析Swift中struct与class的区别(汇编角度底层分析)

    这篇文章主要介绍了Swift中struct与class的区别 ,本文从汇编角度分析struct与class的区别,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Swift解决UITableView空数据视图问题的简单方法

    Swift解决UITableView空数据视图问题的简单方法

    这篇文章主要给大家介绍了关于Swift解决UITableView空数据视图问题的简单方法,文中通过示例代码介绍的非常详细,对大家学习或者使用swift具有一定的参考学习价值,需要的朋友可以参考下
    2018-10-10
  • Swift读取App的版本信息与PCH文件详解

    Swift读取App的版本信息与PCH文件详解

    这篇文章主要介绍了Swift读取App的版本信息与PCH文件的相关资料,文中通过图文介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Swift代码实现冒泡排序算法的简单实例

    Swift代码实现冒泡排序算法的简单实例

    冒牌排序可谓最基本的排序算法之一,稳定而没有优化空间:D 下面就一起来看一下Swift代码实现冒泡排序算法的简单实例:
    2016-06-06
  • Swift中的指针操作和使用详细介绍

    Swift中的指针操作和使用详细介绍

    这篇文章主要介绍了Swift中的指针操作和使用详细介绍,Apple期望在Swift中指针能够尽量减少登场几率,因此在Swift中指针被映射为了一个泛型类型,并且还比较抽象,本文详细讲解了Swift中指针的相关知识,需要的朋友可以参考下
    2015-01-01
  • Swift Sequence Collection使用示例学习

    Swift Sequence Collection使用示例学习

    这篇文章主要为大家介绍了Swift Sequence Collection使用示例学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Swift缩放并填充图片功能的实现

    Swift缩放并填充图片功能的实现

    最近有一个需求,就是将图片先等比例缩放到指定大小,然后将空余出来空间填充为黑色,返回指定大小的图片。本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • Swift可选值优化示例详解

    Swift可选值优化示例详解

    这篇文章主要为大家介绍了Swift可选值优化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论