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

谢谢!

有帮助吗?

解决方案

根据您上面的评论:

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

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

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

编辑:

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

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

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

其他提示

libz.dylib框架添加到您的项目,包括 Deusty的NSData gzip的类别这将给你压缩/解压缩方法。

虽然这是可以通过使用libz.dylib,它确实是不必要的,因为它为你节省一点(如果有的话)的空间。当被转移至手机,您的应用程序包已经被压缩。上压缩的顶部压缩通常会产生很小的附加压缩。

自己试试它了。您可能会发现您的出货与解压缩后的内容的应用程序可能需要最多只是尽可能多的空间拉上内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top