0

基本的に、OSX Lionに保存されているファイルを解凍すると、zipファイル名がフォラー内のファイルを含むフォルダーとして取得されます...

そのため、zipfile.zip を解凍すると、その中に 3 つのファイルを含む「zipfile」フォルダーが作成されます。

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 で同じことを行うと、zip ファイルに 6 つのエントリが作成されます。

「globalInfo.number_entry」が何を意味するのかよくわかりませんが、ファイル属性ですか?

OSX Lion での zip ファイルの処理方法に違いがあるのはなぜですか? 基本的に、プロジェクトを Snow Leopard マシンにコピーしてビルドを作成し、何らかの方法で属性を変更した OSX Lion オペレーティング システム上にない zipfile.zip を使用する必要があることを意味します。私のプロジェクトが壊れる原因となります。

私がここで何を得ているか知っている人はいますか?このような小さな変化でありながら、大きな問題です。

私が持っている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
4

1 に答える 1

1

全体像として、1 つではなく 2 つの異なる .zip ファイルがここにあり、作成方法が異なっていると思います。

1 つは、3 つのファイルを選択し、右クリックして [3 つの項目を圧縮] を選択した場合です。

一方、フォルダーを選択し、「圧縮(フォルダー名)」を選択しました

各エントリのフル パス名は zip ファイル ディレクトリに保存され、魔法のように消えることはありません。

両方のマシンでまったく同じ zip ファイルから開始する場合は、実際の解凍ツールのコピーを取得し (既に /usr/bin/ にある可能性があります)、「/usr/bin/unzip - l zip file.zip' コマンドを使用して、アーカイブを展開せずにアーカイブの内容を確認します。

于 2011-08-17T08:36:43.873 に答える