lzmasdkobjc的使用
解压
// select full path to archive file with 7z extension let archivePath = "path to archive" // 1.1 Create reader object. //创建解压 let reader = LzmaSDKObjCReader(fileURL: NSURL(fileURLWithPath: archivePath)
//解压密码 reader.passwordGetter = { return "password to my achive" } ...
// Try open archive. do { //打开解压文件 try reader.open() } catch let error as NSError { print("Can't open archive: \(error.localizedDescription) ") }
// // Create writer let writer = LzmaSDKObjCWriter(fileURL: NSURL(fileURLWithPath: "/Path/MyArchive.7z")) // Add file data's or paths writer.addData(NSData(...), forPath: "MyArchiveFileName.txt") // Add file data writer.addPath("/Path/somefile.txt", forPath: "archiveDir/somefile.txt") // Add file at path writer.addPath("/Path/SomeDirectory", forPath: "SomeDirectory") // Recursively add directory with all contents // Setup writer writer.delegate = self // Track progress writer.passwordGetter = { // Password getter return "1234" } // Optional settings writer.method = LzmaSDKObjCMethodLZMA2 // or LzmaSDKObjCMethodLZMA writer.solid = true writer.compressionLevel = 9 writer.encodeContent = true writer.encodeHeader = true writer.compressHeader = true writer.compressHeaderFull = true writer.writeModificationTime = false writer.writeCreationTime = false writer.writeAccessTime = false // Open archive file do { try writer.open() } catch let error as NSError { print(error.localizedDescription) } // Write archive within current thread writer.write() // or dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) { writer.write() }