如何在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];
答案 0 :(得分:19)
Swift 2(更新):
所以它适用于没有错误的我:
将库包含到Project Swift-ObjC Bridge(xxxx-Bridge-Header.h)
#import“SSZipArchive.h”
链接库“libz.tbd” - iOS的一部分
(项目 - >构建阶段 - >链接二进制文件库 - > +)
准备压缩/解压缩
答案 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显示来检查: