Я сохранил один zip-файл в своем приложении, в котором *. 1025 * файлов. Мне нужно распаковать этот zip-файл по какому-то пути и прочитать файл после распаковки.
Я пытался использовать менеджеры пакетов, такие как ZipFoundation
Если я запускаю приложение на своей ма c с ОС 10.15.2 (macOS Catalina) Я получаю следующий вывод
"Extraction of ZIP archive failed with error:Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “directory” in the folder “Macintosh HD”." UserInfo={NSFilePath=/directory, NSUnderlyingError=0x600002f39530 {Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"}}"
, если я запускаю приложение на устройстве (iPhone XS Max iOS 13.3.1), я получаю следующее ошибка,
Extraction of ZIP archive failed with error:Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “directory” in the folder “System@snap-8290536”." UserInfo={NSFilePath=/directory, NSUnderlyingError=0x2811d54d0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
Это мой код
import ZIPFoundation
func unarchiveFile(){
let fileManager = FileManager()
let currentWorkingPath = fileManager.currentDirectoryPath
var sourceURL = URL(fileURLWithPath: "/Users/sagarchavan/Documents/Project/Swift-POC/iOS-CD-POCs/CDSwiftDemo/")
//var sourceURL = URL(fileURLWithPath:currentWorkingPath)
sourceURL.appendPathComponent("countryList.zip")
print("source url is :- :\(sourceURL)")
var destinationURL = URL(fileURLWithPath: currentWorkingPath)
destinationURL.appendPathComponent("directory")
print("destinationURL is :- :\(destinationURL)")
do {
try fileManager.createDirectory(at: destinationURL, withIntermediateDirectories: true, attributes: nil)
try fileManager.unzipItem(at: sourceURL, to: destinationURL)
} catch {
print("Extraction of ZIP archive failed with error:\(error)")
}
}
Не могли бы вы помочь мне выйти из этой проблемы. Мне нужно распаковать zip-файл.
для sourceURL
Я попробовал оба варианта, указав currentWorkingPath
и указав фактический путь к файлу. но оба раза я получаю одну и ту же ошибку.
@ note: - Я не хочу использовать стручки или Карфаген. Я хочу, чтобы код по умолчанию или внешние зависимости были только от менеджеров пакетов.
Любая помощь будет оценена. Спасибо.