ファイルを圧縮すると壊れますか?


85

圧縮psdファイルを送ってほしいと誰かに頼んだだけです。

ファイル圧縮するとフォントが破損する可能性があるとして、彼らは辞退しました。

ファイルの圧縮は完全に可逆的であるため、一般的に使用される理由を想定しました。私は他の人が間違っていると思います。

zipでファイルのコンテンツを壊すことについて真実はありますか?


51
たぶん、他の人は、テストを見苦しくすることができるjpeg圧縮(lossy)とファイル(lossless)の圧縮を混同しているかもしれません。
マットH

私は、ファイル形式は、すべてのプラットフォームで使用されているので、私は一度、zipファイルの互換性の問題があったことを知っている...
jokoon

1
WinrarとWinXPの組み込み機能の両方がファイル(1つのzip ファイルで数万個)を壊した「病理学的」なケースを確かに経験しました。これは4〜5年前のことで、当時見つけられた唯一の解決策は7-zipを使用することでした。私が覚えている限りでは、7-Zipでさえ他のルーチンで作成されたファイルを正常に解凍できなかったため、障害は解凍ではなく圧縮にあることが示唆されました。明らかに、とにかく本番システムの両側で7-zipを使用することを選択しました。
FumbleFingers

1
@jokoon:すべてのプラットフォームで使用されるファイル形式について話すことが有効かどうかわかりません。zipファイルにはかなり多くの異なる内部形式が使用されており、アーカイブは、展開時に使用する他のルーチンで不完全にサポートされている形式を使用して、1つの圧縮ルーチンで作成できる可能性が常にあります。
-FumbleFingers

@ファンブル; それでも、まともなアーカイバーはハッシュの変更をキャッチし、操作を失敗として報告する必要があります-壊れたファイルを放置しないでください。
-Phoshi

回答:


133

いいえ、ファイルを圧縮しても破損することはありません。zipファイルが破損していない場合、解凍すると同じファイルが再現されます。

この場合、2つの異なるシステムにインストールされたフォントの違いにより問題が発生する可能性がありますが、これはzip / unzipプロセスとはまったく関係ありません。


4
それが私が疑ったことです。ご回答有難うございます。
アレックス

34
さらに、一部のzip形式では冗長性がサポートされています。つまり、zipとして保存する方が、プレーンファイルを保存するより安全です。
BlueRaja-ダニーPflughoeft

これをすぐにノーと言うべきではありません、多くのzipファイルの実装があり、既存のOSやzipファイルを作成できる他のものをすべてカウントします。
-jokoon

@jokoon:これらのファイルは破損し、明示的に除外します
-mbx

3
-1理論的にはこれは事実ですが、実際にはPCで0バイトとして解凍されたMacフォントに問題があります。これは、リソースフォークが作成されるためです。自分で試してみてください。
ジャンゴラインハルト

80

一般的な用法、ZIPは可逆(バグfreeimplementationを想定)であるが、ある1つのデータ損失に適用できるシナリオ:NTFS代替データストリームは。この使用頻度の低い機能により、1つのファイルに複数の独立したコンテンツセットを持たせることができます。ほとんどのコードは名前のないストリームのみを表示しますが、他のコードも存在できます。

そう; プログラムがデータをNTFS代替データストリームに保存することを決定した場合、zipクライアントはその部分を表示しません(明示的に要求する必要があり、RARが現在これを行う唯一のものです)。

ただし、強調するのは、これはめったに使用されず、通常はPSDのようなものでは使用されないことです。私はあなたの友人/仲間が単に間違っていると思う。


11
うわー、これは私にとって全く新しい知識です。
kizzx2

5
私にとって新しくて奇妙です。ファイルがファイルではないのはいつですか?その内容が自由に変化するとき。悪い機能について聞いたことがありますが、多くはありません。
msw

7
@msw-彼らは自由に変異しません。単純に-単一のファイルレコードに関連付けられたデータの塊が複数存在する場合があります。ほとんど常にある(それは非常にまれに使用される)正確に一つですが、...
マルクGravell

4
SOに戻ってください!技術的すぎる!(もちろん冗談です。)
バイロンホイットロック


32

Macフォントが圧縮されてから解凍されると、Macフォントが同一ではない場合があります。これはそれを壊さないかもしれませんが、上記のいくつかのステートメントに反して、プロセスは同一のファイルを提供しないかもしれません。

状況は次のとおりです。

http://xahlee.org/UnixResource_dir/macosx.html

http://ask.metafilter.com/59789/How-to-email-my-font

しかし、要するに:

  1. リソースフォークを含むはるかに古いフォントであり、ユーザーがMac OS Xの古いバージョン(通常は10.4以前)を持っている場合。このような従来のフォントはOS Xで動作しますが、元々はOS 9および以前のバージョンのMacintoshオペレーティングシステムを対象としていました。一部の人々は20年前に構築したフォントライブラリをまだ使用している可能性があります(私の経験では一般的です)。通常、これらはアーティストとアートディレクターのタイプです。たとえば、1993年の作成日を持つフォントと1998年の作成日を持つ数百のフォントがあり、そのほとんどがリソースフォークです。確かに、これらをより新しい形式に変換するか、使用を停止する必要がありましたが、それに直面しましょう。AdobeFont Libraryを購入したら、再び購入する必要はありません。広告でアートディレクターと仕事をしてきた数年間で、

  2. オペレーティングシステムの特定のバージョンでは、一部のメタデータが削除されます。メタデータは、ファイルの情報フィールドに追加されるものです。これによりファイルが破損することはありませんが、繰り返しますが、往復zip-unzipによって同一のファイルが生成されることもありません。

PS:ここでは、PSDファイルを他の人に配信するために圧縮している場合、平坦化されておらず、フォントがアウトラインに変換されていない、つまりPSDとともにフォントファイルも配信すると仮定しています受信側のユーザーがファイルに独自の変更を加えることができるようにします。これは一般的な方法です。


2
+1-これをスタックの一番上にプッシュするのに十分なポイントを与えたいと思います。Mac OSには、タイプ1とTrueTypeの両方のフォントバリアントがあり、フォントデータはリソースフォークに保存されます。OSのネイティブのzip / unzipツールはこの状況を適切に処理できますが、すべてのツール(特にOS Xに移植されたコマンドラインツール)が処理できるわけではありません。さらに悪いことに、フォントを圧縮せずに電子メールまたはFTPで送信しようとすると、フォント破損します。
フレイジャー

1
ただし、ここでの問題は、圧縮できるかどうかではなく、圧縮方法にあるようです。リソースフォークを理解するプログラムが必要なようで、その使用方法を知っている必要があります。私はそれを読んでいますか?
-uSlackr

@uSlackr、そうですが、問題は受信側で持続します。その後、アーカイブをWindowsに移動すると、Windows(具体的にはNTFS)はファイル内の複数のデータストリームを許可しますが、Windowsのフォントはそのように機能しないため、無用なフォントファイルのスタックを取得する可能性があります。ただし、PSDファイル自体は、MacとWindowsの間で移植可能です。
RBerteig

+1-例として、Macフォントをネットワークドライブに保存し、WindowsまたはLinux PCからのフォントの大きさを確認します-0バイト!これは、リソースフォークであり、「機能するだけ」というアイデアを混乱させます。
ʍǝɥʇɐɯ

はい、Macフォントがうまく圧縮されないことは、私の業界ではよく知られている事実です。多くの場合、PCユーザーはそれらを0バイト解凍します。
ジャンゴラインハルト

14

ZIPはチェックサムを使用して、展開されたファイルが圧縮前とまったく同じかどうかを確認します。

そのため、何らかの理由で変更された場合(たとえば、破損したアーカイブ)-解凍されません。


zipはロスレス圧縮(または「ストレージ」、圧縮を無効にできる)を使用しているため、無関係です。チェックサムは、何か問題が発生した場合にフィードバックを提供できるようにすることです。
アキラ

13
ペダントリーを許しますが、ZIPはチェックサムを使用しません。32ビットの巡回冗長検査(別名CRC-32)を使用して、はるかに広範囲のエラーを検出します。
ベヴァン

5
「チェックサム」という用語は、暗号化ハッシュ関数の結果を「チェックサム」と呼べる[そしてそうする]場合、元の定義よりも意味が明らかに広くなっています。
ランダム832

9

テキストモードの変換のような愚かなことをしている場合、または埋め込まれたzipで混乱する壊れたzip / unzipがある場合のみ。(このようなバグ過去に発生したことがあります。おそらく10年前を意味します。)


4

Zipはロスレス圧縮アルゴリズムを使用して、返されるデータが入力したデータと同一であることを確認します。

(ところで、jpg、mpeg、mp3などのその他の技術は、損失の多い技術を使用して、目と耳はそれほど敏感ではないという理論で圧縮します)


0

「Zip Breaks Fonts」という文で確認できる唯一の真実は、PSDファイル形式自体に、これらのファイルを作成するプログラムで有効にできる「圧縮」バージョンまたはオプションがあり、このオプションが何らかの方法でフォントを異なる方法で処理する場合です。

zipプログラムを使用する場合は、バグがある場合を除いて問題ありません。

Marcへの応答として、これらを理解しないzip形式のソフトリンクとハードリンクを含むディレクトリ構造を圧縮しようとすると、EXTファイルシステムに潜在的なファイルシステムの問題があります(そのため、代わりに常に.tar.gzを作成しますそこに.zipがあります)。また、ソフトリンクを相対パスで圧縮してから他の場所で解凍することはもちろん機能しませんが、それはzipプログラムのせいではありません。


0

以前にその問題があった場合(PSDの破損)、コンプレッサーソフトウェアに障害があるか、PSDに必要なすべてのファイルが含まれていないか、コンピューターがウイルスに感染しています。

最後のオプションを破棄するために、ファイルをusbディスクに移動して同様の破損が発生したかどうかを尋ねます。


0

完全を期すためにもう1つ注意点を追加します。Zipを使用すると、アクセス許可や最終アクセス時刻などのファイルのメタデータが失われる可能性があります。

私はそれがPSDファイルとフォントに一般的に関連するとは思わない。


このタスクを実行するロスレス圧縮アルゴリズムとプログラムの概念には誤解があると思います。ロスレスは、圧縮されたバイナリストリームが同一の出力バイナリストリームに解凍されることを意味します。メタ情報はOSに依存しているため、OSやアプリケーションで処理する必要があります。
ボラ

1
@Boraに感謝しますが、そのような誤解はありません。zipはファイル内の実際のデータには影響しません。私は、zipがファイルやディレクトリを破損させたと考えるように人々をだます「外部」原因を提案しています。圧縮されたバックアップを復元することで過去に捕らえられましたが、アプリケーションが機能しなくなったのは、私が渡さなかったメタデータに依存しているためです。(私の側での基本的な誤解ではなく、単なる見落としです。)
11

0

Zipはファイル名を破損する可能性があります。ZipなどはUnicodeを使用しません。ファイル名のエンコードは指定されておらず、Windowsでは現在のロケールが使用されます。

したがって、別のシステムに転送すると、ファイル名が台無しになります。

最新のプログラム(バージョン11以降のwinzip)が使用するZip形式の拡張機能があります。

私は7zが好きです。なぜなら、私はそれを解凍できない日本の名前でいっぱいのzipを持っていたからです。


0

zipファイルは、コンテンツを正確に再現できるはずです。

ただし、関連する注意事項が1つあります。zipファイルが破損した場合、データが元の形式であった場合よりもデータを回復するのが難しくなります。どうして?多くのファイル形式には冗長性が組み込まれており、軽微なエラーは修正可能、または軽微なエラーは重要ではないように設計されています。

ビデオファイルを想像してください。ほとんどの形式では、小さな部分が破損すると、ビデオのその小さな部分に一時的なちらつきが見られますが、それでもビデオを見ることができます。ただし、ビデオファイルが圧縮されている場合、エラー修正機能が低下し、破損の程度によっては、ファイルを解凍したりビデオを視聴したりできない場合があります。(これは、どのような場合でもほとんどのビデオ形式を圧縮しても役に立たないため、不自然な例です)。

これは、あらゆる圧縮形式に当てはまります。定義による圧縮は、冗長性を減らし、エラー訂正機能とそのトレードオフを減らします。


上記のコメントで述べたように、一部のzipファイル形式は冗長性をサポートしています。これにより、元の形式よりもさらに安全になります。
DMan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.