4

我的方法适用于从先前创建和填充的临时目录中压缩文件:

NSURL *destURL = self.archiveDestURL;
NSTask *task = [[NSTask alloc] init];
[task setCurrentDirectoryPath:[srcURL path]]; 
[task setLaunchPath:@"/usr/bin/zip"];
NSArray *argsArray = [NSArray arrayWithObjects:@"-r", @"-q", [destURL path], @".", @"-i", @"*", nil];
[task setArguments:argsArray];
[task launch];
[task waitUntilExit];

但是解压缩后我想要的是一个包含文件的文件夹。确定我可以在 tempDir 中创建一个文件夹并在那里写入我的文件,但是在创建的存档中让文件夹成为顶层的 zip 参数是什么?

我没有看到这个 man zip

4

2 回答 2

3

这将对您有所帮助。

NSTask *unzip = [[NSTask alloc] init];
[unzip setLaunchPath:@"/usr/bin/unzip"];
[unzip setArguments:[NSArray arrayWithObjects:@"-u", @"-d", 
                     destination, zipFile, nil]];

NSPipe *aPipe = [[NSPipe alloc] init];
[unzip setStandardOutput:aPipe];

[unzip launch];
[unzip waitUntilExit];
于 2013-04-01T09:21:14.453 回答
0

而不是使用NSTask,您可以将压缩功能合并到您的代码中。有几种选择。

  1. 来自 apple.com 的ZipBrowser
  2. 向 中添加类别NSData,如此
  3. 一个类似的问题。如何使用 Objective C 创建一个 zip 文件?
于 2011-03-21T16:43:29.183 回答