在swift中解压缩文件

时间:2014-10-30 13:23:51

标签: ios objective-c swift unzip ssziparchive

如何在swift中解压缩文件?在Objective-C中,我使用了SSZipArchive,我喜欢它。如下面的代码所示。我怀疑如果我决定保留SSZipArchive,I will have to bridge an Objective-C file to my Swift file.是否有任何更新的第三方,或者更好的Apple-Documentation来解压缩Swift中的文件?

NSString *zipPath = [self.globalFileStrucure stringByAppendingPathComponent:@"zipfile.zip"];

[data writeToFile:zipPath options:0 error:&error];

BOOL unZipped = 0;

unZipped = [SSZipArchive unzipFileAtPath:zipPath toDestination:self.globalFileStrucure];

5 个答案:

答案 0 :(得分:19)

Swift 2(更新):

所以它适用于没有错误的我:

  1. 在此处下载/克隆图书馆:ssziparchive
  2. 将目录“SSZipArchive”复制到您的项目(拖放)并选择“创建群组”
  3. 将库包含到Project Swift-ObjC Bridge(xxxx-Bridge-Header.h)

    #import“SSZipArchive.h”

  4. 链接库“libz.tbd” - iOS的一部分

    (项目 - >构建阶段 - >链接二进制文件库 - > +)

  5. 准备压缩/解压缩

答案 1 :(得分:2)

如果你正在使用UIKit或AppKit中的任何一个,那么你已经在使用Swift-ObjC桥了。不用担心,只需使用你认识并喜爱的图书馆!

let zipPath = globalFileStrucure.stringByAppendingPathComponent("zipfile.zip")
data.writeToFile(zipPath, options: nil, error: &error)

let unZipped = SSZipArchive.unzipFileAtPath(zipPath, toDestination: globalFileStrucure)

答案 2 :(得分:1)

我发现使用Cocoapods更容易使用和安装WPZipArchive。有兴趣的人可以阅读以下指南:

1)从Mac Application / Utilities文件夹或Launchpad

打开Terminal.app

2)在您的终端中输入sudo gem update --system以确保您的Ruby是最新的

3)输入sudo gem install cocoapods安装cocoapods(此过程可能需要几分钟,只需等待显示已完成)

4)输入pod setup设置cocoapods(从此处开始,您不需要使用sudo命令,仅使用pod

5)启动Xcode并创建一个新项目(如果您没有创建现有项目)。如果您已创建Xcode项目,请跳过此步骤。

6)退出Xcode程序。是的,关闭您的项目并退出Xcode程序

7)返回终端并输入cd Path/To/Folder/Containing/YourProject将此Path / To / Folder / Containing / YourProject替换为您自己的目录路径

8)输入pod init

9)输入open -a Xcode Podfile以使用Xcode程序打开podfile。默认的Podfile如下所示:

platform :osx, '10.10'
use_frameworks!

target 'myprojectname' do
pod 'WPZipArchive', '0.0.1'
end

platform :osx, '10.10'指定最低部署目标,您可以更改为您喜欢的任何内容。

10)保存并关闭Podfile(也关闭Xcode)

11)返回终端并输入pod install这是安装WPZipArchive,这将需要几分钟。

12)您已完成安装WPZipArchive。

启动Xcode项目:

重要:从现在开始,您必须使用 .xcworkspace NOT .xcodeproj

启动Xcode项目

在ViewController.swift或任何.swift文件中你想使用zip或unzip方法,只需添加导入WPZipArchive,如下所示:

import Cocoa
import WPZipArchive

要压缩文件,请调用以下方法:

WPZipArchive.createZipFileAtPath(zipPath, withContentsOfDirectory: sampleDataPath)

要解压缩文件,请调用以下方法:

WPZipArchive.unzipFileAtPath(zipPath, toDestination: unzipPath)

这一切都很有效并且易于实施。

享受压缩和解压缩

答案 3 :(得分:0)

与Peter Kreinz合作。

注意步骤2,如下所示:

请选择'创建群组'复制目录" SSZipArchive"到您的项目(拖放)

答案 4 :(得分:0)

@screenworker(Unome)询问了一些错误,这些错误都引用了libz框架。我碰到了类似的东西。链接步骤产生关于“符号”的错误,例如“_crc32”。所有这些符号都可以在libz.tbd存根中找到。

在这种情况下的问题是我错误地将libz.tbd引用添加到Test目标,而不是为项目本身命名的Target。这可以通过转到Build Phases显示来检查:

  • 在Project Navigator(左侧面板)中,单击您的项目名称
  • 在编辑器中,单击“构建阶段”选项卡。
  • 在Build Phases屏幕中,在Project Navigator旁边的窄列中查找名为Targets的列表
  • 点击与项目相同的目标(例如myProject,而不是myProjectTest或myProjectUITest)
  • 如果单击“Link Binary With Libraries”旁边的箭头,您应该会看到库列表 - 应该包含libz。