【问题标题】:Convert gz to zip format将gz转换为zip格式
【发布时间】:2014-11-13 10:27:33
【问题描述】:

是否可以使用objective-c将GZ转换为ZIP格式?

NSFileManager *fileManger = [NSFileManager defaultManager];
NSError *error;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
paths = nil;
path = [path stringByAppendingPathComponent:@"text.zip"];

if([fileManger fileExistsAtPath:path ] == NO){
NSString *testPath = [[NSBundle mainBundle] pathForResource:@"text" ofType:@"gz"];
[fileManger copyItemAtPath:@"" toPath:@"" error:&error]; 
}

将 gz 文件从 mainBundle 转换为 zip 文件,放置到 docuemtn 目录。

但无法通过 ZipArchive 类打开 zip 文件。

【问题讨论】:

  • 什么压缩在.gz文件中?是tar吗?

标签: objective-c iphone xcode ipad


【解决方案1】:

gzip 只是压缩数据,而ZIP 既是压缩器又是归档器。 gzip 流只能压缩一个文件,而 ZIP 可以压缩多个文件。所以简单地重命名文件是行不通的。

你需要decompress the gzip stream to a file,然后recompress as ZIP

【讨论】:

  • 通常.gztar 一起使用,所以就是这样。但是解决方案是解压到一个临时目录并使用zip重新打包该目录。
  • @trojanfoe:对。但是您要么需要知道/期望该文件是tar.gz/tgz 文件,要么在untar the file 之前检查解压缩的文件。
猜你喜欢
  • 2018-02-03
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 2016-07-15
  • 2015-07-18
相关资源
最近更新 更多