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 に答える