ホームページ制作でデザインデータ等のやりとりでZIPファイルがよく使われますが、ZIPファイルの取り扱いで困ったときの子ネタをご紹介します。
相手からのZIPファイルが壊れている (データが途中まで)
大容量のZIPファイルを転送してもらったのはいいけど、なぜか、データが途中までで、ZIPファイルが壊れている状態。いくら、ZIP解凍ソフトで解凍しようともエラーがでて解凍できない。
そこで、Windowsなどでは信用できないので、Linuxターミナルからunzipコマンドで解凍してみると、下記のようなエラーがでました。どうやら、終了までデータがない様子。または、マルチパート・アーカイブの一部なのか。
# unzip hoge.zip Archive: hoge.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of hoge.zip or hoge.zip.zip, and cannot find hoge.zip.ZIP, period.
そこで、「[osx]破損しているzipファイルを解凍する」を参考に、zipファイルを修復。
# zip -FF hoge.zip --output hoge2.zip Fix archive (-FF) - salvage what can zip warning: Missing end (EOCDR) signature - either this archive is not readable or the end is damaged Is this a single-disk archive? (y/n): y Assuming single-disk archive Scanning for entries... copying: ******* (582347622 bytes)
運が良ければ、上記の修復した「hoge2.zip」が解凍でき、データの一部だけの可能性あるのですが、データが取り出せます。
MacやLinuxで圧縮したZIPファイルをWindowsで解凍
MacやLinux側で特別なことをしない限り、Windows側で日本語のファイル名が文字化けしちゃいます。MacやLinuxでは、ファイル名がUTF8の文字コードですが、WindowsではCP932(Shift_JIS)だからなのですが、いちいち、MacやLinux側で文字コード変換&ZIP化しなおすのも面倒です。そこで、下記のような方法があるようです。ちなみに、試してないのですが、Windows8のOS標準のZIP解凍では問題ないようです。
Microsoftの修正プログラムを適用
[修正プログラム] Windows 7 または Windows Server 2008 R2 では、.zip ファイルの解凍後のファイル名が破損しています。
http://support.microsoft.com/kb/2704299/ja
文字コード・エンコード対応の解凍ソフトを使う
文字コード変換対応の下記のような解凍ソフトを使ってみる。
Explzh for Windows
http://www.ponsoftware.com/
CubeICE
http://www.cube-soft.jp/cubeice/
以上ですが、何かのご参考になれば幸いです。
※上記、ソフトの使用および上記の記事内容に関しては、すべて自己責任でご判断をお願い致します。