Swift에서 게임을 만들었지 만 내 웹 사이트에서 .zip 파일을 다운로드하고 게임에서 콘텐츠 (이미지)를 사용해야합니다. 사실, .zip 파일을 다운로드하여 문서에 저장하고 파일을 같은 문서 폴더에 압축을 풀어야합니다.Swift로 압축 해제
나는 marmelroy의 Zip, iOS 9 압축 모듈과 tidwall의 DeflateSwift를 시도했지만 이들 중 아무 것도 시도하지 못했습니다. iOS 8과 호환되면 좋을 수도 있습니다.
Swift에서 게임을 만들었지 만 내 웹 사이트에서 .zip 파일을 다운로드하고 게임에서 콘텐츠 (이미지)를 사용해야합니다. 사실, .zip 파일을 다운로드하여 문서에 저장하고 파일을 같은 문서 폴더에 압축을 풀어야합니다.Swift로 압축 해제
나는 marmelroy의 Zip, iOS 9 압축 모듈과 tidwall의 DeflateSwift를 시도했지만 이들 중 아무 것도 시도하지 못했습니다. iOS 8과 호환되면 좋을 수도 있습니다.
나는 SSZipArchive와 브리지 헤더와 함께 작동있어 : & 프로젝트에 SSZipArchive 디렉토리를 삭제
방금 Minizip이라는 라이브러리를 찾았습니다. 사용해보기
Zip framework을 사용하여 Swift
을 사용하여 파일을 압축 해제 할 수 있습니다. 간단히 minizip에없는 작품, 당신은 ZipArchive로 갈 수 있다면 Swift
샘플 코드
do {
let filePath = NSBundle.mainBundle().URLForResource("file", withExtension: "zip")!
let unzipDirectory = try Zip.quickUnzipFile(filePath) // Unzip
let zipFilePath = try Zip.quickZipFiles([filePath], fileName: "archive") // Zip
}
catch {
print("Something went wrong")
}
작성, 그것은
가예 처음 시도했지만 시도했을 때 minizip 모듈을 찾을 수 없었습니다 –
ZipArchive를 사용하면 현재까지 다른 프레임 워크를 사용할 수 없습니다. –
SSZipArchive를 사용하면 클래스를 찾을 수 없습니다 같은 이름. –
당신은
을 사용할 수 있습니다-C 목표 신속한뿐만에 기록되지 아니let unzipDirectory= try Zip.quickUnzipFile(filePath) //to unZip your folder.
더 많은 도움이 필요하면 website.
저에게 도움이되었습니다.
나는이 문제가 해결되기를 바랍니다.
이것은 타사 라이브러리를 사용하는 것과 관련이 있습니다. 사용하지 않는 경우이 코드는 컴파일 타임 오류를 생성합니다. 사용 된 라이브러리가 무엇인지 제안하는 것이 좋습니다. –
저는 최근에 ZIP 보관 파일을 만들고, 읽고 업데이트 할 수있는 Swift 네이티브 프레임 워크를 발표했습니다 : ZIP Foundation.
뛰어난 압축 성능을 위해 내부적으로 libcompression을 사용합니다.
try fileManager.unzipItem(at: sourceURL, to: destinationURL)
일부 컨텍스트 전체 예는 다음과 같이 보일 것이다 : :이 README on GitHub 더 많은 정보를 포함
let fileManager = FileManager()
let currentWorkingPath = fileManager.currentDirectoryPath
var sourceURL = URL(fileURLWithPath: currentWorkingPath)
sourceURL.appendPathComponent("archive.zip")
var destinationURL = URL(fileURLWithPath: currentWorkingPath)
destinationURL.appendPathComponent("directory")
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)")
}
파일을 압축 풀기
는 기본적으로 하나 개의 라인입니다. 모든 공개 메서드에는 Xcode 빠른 도움말을 통해 사용할 수있는 전체 설명서가 있습니다.
또한 성능 특성 here에 대한 블로그 글을 썼습니다.
5. 위의 4 단계에서 링커 오류를받은 후에 libz를 대상에 추가하십시오. – DiggyJohn