OSX Lion libz解压缩文件结构更改

时间:2011-08-17 02:29:24

标签: objective-c xcode cocoa zlib ziparchive

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

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

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

BUT

如果在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

并检查Log for:

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

我在zip文件中收到'10个条目。'

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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