5

我有一些资源(压缩)需要随我的 iphone 应用程序一起提供。当应用程序首次启动时,需要将此压缩文件移动/复制到 Documents 文件夹并在那里解压缩。然后,用户可以从应用程序将更多文件添加到此路径。有人可以建议我如何实现这一目标吗?

谢谢!

4

3 回答 3

6

根据您上面的评论:

我想添加压缩资源的原因是因为有多个文件。如果我不压缩,那么我需要单独移动文件。我还需要在某处维护一个文件列表,以便我可以读取文件名然后移动它们。我认为压缩和解压缩是一个更简单的解决方案。

您可以将所有文件添加到捆绑包中的文件夹中。当应用程序第一次启动时,使用快速枚举来遍历文件夹以及在该文件夹中找到的任何内容,它会复制到 Documents 文件夹中。处理文件夹中的文件夹稍微复杂一些(可能添加递归)。这样您就不必担心 zip 或 tar,也不必保留要安装的文件目录。

只需将您想要的文件文件夹放入 Xcode 的资源文件夹并告诉它作为文件夹而不是作为组导入。这样,文件就会安装在文件夹内的资源中,而不是像整个地方的单个文件一样。

编辑:

更好的是,按照我所说的将您想要的所有文件放在一个文件夹中,添加到您的项目中,但不是作为“组”,然后在第一次启动时使用:

[[NSFileManager defaultManager] copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error];

它会将您的整个目录从一个地方复制到另一个地方。简单的!

于 2009-09-23T08:31:19.310 回答
4

libz.dylib框架添加到您的项目中,并包含Deusty 的NSDatagzip 类别,该类别将为您提供压缩/解压缩方法。

于 2009-09-23T04:38:23.867 回答
3

虽然这可以通过使用 libz.dylib 获得,但它确实是不必要的,因为它可以为您节省很少(如果有的话)空间。您的应用程序包在传输到手机时已经被压缩。在压缩之上的压缩通常不会产生额外的压缩。

自己尝试一下。您可能会发现使用解压缩内容运送您的应用程序可能会占用与压缩内容一样多的空间。

于 2009-09-23T04:43:09.263 回答