【发布时间】:2022-07-01 15:37:36
【问题描述】:
您好,我在 https://github.com/weichsel/ZIPFoundation 的 Swift 中使用 ZipFoundation
我的要求是解压内存中的文件内容,直接转成String。
let archive = Archive(url: fileUrl, accessMode: .read, preferredEncoding: .utf8)
do{
try archive?.extract(entry, consumer: {data in
print(data.count)
})
}catch{}
存档对象始终为空,它不读取 zip 文件。 还有要传递给提取方法的入口对象是什么?
任何帮助将不胜感激。
【问题讨论】:
-
也许“入口”不在 zip 文件中,你为“入口”传递了什么?如果你发现错误并打印出来怎么办?
-
存档为零(检查 fileUrl、权限)?
-
该文件位于 assets 文件夹中,因此它具有权限,还尝试使用 NSData 访问其读取。你有什么代码可以在内存中读取,你能分享一下吗?
-
用于归档中的条目,其中 entry.type == .file { print(entry.fileName); if let data = archive.extract(entry) { ... } }}
-
您是否会收到警告,因为您正在执行 do/catch 但没有真正尝试,因为您忽略了
try?可能引发的错误。至少,改写try!,它可能会崩溃,或者使用try(没有问号),并打印控制台中捕获的error。
标签: ios swift zipfoundation