0

基本上,当我解压缩已存储在 OSX Lion 上的文件时,我将 zip 文件名作为一个文件夹,其中包含文件夹中的文件......

所以解压缩 zipfile.zip 给了我文件夹“zipfile”,里面有 3 个文件。

1. zipfile.zip
2. zipfile
   ->file1
   ->file2
   ->file3

如果它是在 OSX Leopard 中创建/使用的,我会解压缩 3 个文件,但不在“zipfile”文件夹中,而是在与 zip 文件相同的目录中。

所以父文件夹结构“应该”看起来像:

1. zipfile.zip
2. file1
3. file2
4. file3

在 OSX Lion 中,如果我复制(或创建)我的 file.zip,并使用 ZipArchive.mm 将其解压缩到我的 xcode 项目中

通过调用

-(BOOL) UnzipOpenFile:(NSString*) zipFile

并检查日志:

NSLog([NSString stringWithFormat:@"%d entries in the zip file",globalInfo.number_entry] );

我在 zip 文件中有 10 个条目。

如果我在 OSX Leopard 中做同样的事情,我会得到 6 个 zip 文件中的条目。

我不太确定“globalInfo.number_entry”应该是什么意思,文件属性?

为什么在 OSX Lion 中处理 zip 文件的方式有所不同?基本上,这意味着我必须将我的项目复制到 Snow Leopard 机器上进行构建并使用从未出现在 OSX Lion 操作系统上的 zipfile.zip,它以某种方式改变了属性,导致解压缩过程改变,导致我的项目中断。

任何人都知道我在这里得到什么?这么小的变化,却是一个巨大的问题。

从 Lion 当我输出 zip 文件结构时,我有:

filename: zipfile/
filename: zipfile/.DS_Store
filename: __MACOSX/
filename: __MACOSX/zipfile/
filename: __MACOSX/zipfile/._.DS_Store
filename: zipfile/file1.db
filename: zipfile/file2.db
filename: __MACOSX/zipfile/._file2.db
filename: zipfile/suburbs.db
filename: __MACOSX/zipfile/._file3.db

来自 OSX Leopard

file1.db
file2.db
__MACOSX/
__MACOSX/._file2.db
file3.db
__MACOSX/._file3.db
4

1 回答 1

1

大局,我猜你在这里得到了两个不同的 .zip 文件,而不是一个,而且它们的创建方式也不同。

第一,您选择了三个文件,右键单击并选择“压缩 3 个项目”。

另一方面,您选择了一个文件夹,并选择了“压缩(文件夹名称)”

每个条目的完整路径名存储在 zip 文件目录中,它不会神奇地消失。

如果您真的从两台机器上完全相同的 zip 文件开始,那么我会获取一个真正的解压缩工具的副本(/usr/bin/ 中可能已经有一个)并使用 '/usr/bin/unzip - l zip file.zip' 命令查看存档中的内容,无需展开它。

于 2011-08-17T08:36:43.873 回答