2011-05-21 53 views
3

我一直在玩一个应用程序,我想添加压缩目录和它的孩子的能力。我发现在这里经常提到的CocoaDev类别,但最终在Molecules的类别中放置。我的问题是压缩类别更少,更多的是将目录转换为有效的NSData对象。我希望人们能够用那里的任何应用程序压缩文件。我查看了NSFileManager并序列化了目录内容并对其进行了压缩,但是我怀疑这会阻止档案被放弃。如何压缩NSData类别的目录?

我哪里错了? NSData不足够吗?

+0

不确定为什么要涉及nsdata – 2011-05-22 05:28:26

+0

和类别,为什么不只是tar和gzip或类似 – 2011-05-22 05:29:22

+0

我想避免使用NSTask来运行另一个应用程序来执行压缩。我对Objective-C/Cocoa开发比较陌生,看到应用程序调用外部程序很常见吗? – doomspork 2011-05-22 13:23:22

回答

1

听起来像zip -r (more arguments here)可能适合你。

+0

你是否建议我通过NSTask使用zip? – doomspork 2011-05-22 13:19:41

+0

@Doomspork使用NSTask是调用'zip'的一种方法。 *我想避免使用NSTask来运行另一个应用程序来执行压缩。我相对较新的Objective-C/Cocoa开发* - 不用担心重新创建此功能。使用运行良好的东西,并且非常兼容。假设它适合您的需求,您将使用zip节省大量时间。 (cont) – justin 2011-05-22 20:18:41

+0

(续)*看到应用程序调用外部程序很常见吗?* - 这取决于程序和正在执行的内容。通过这个问题来判断:它发生得比您想象的要多得多。如果您正在开发软件:编译器,汇编器,链接器,make,您的scm系统以及大量其他进程都是外部的(大多数情况下)。外部进程在其他应用程序中也很常见。 – justin 2011-05-22 20:19:15