2018.11.19.zipファイルが解凍できないケースを発見したのでメモ。Windowsのエクスプローラで2GiB以上のファイルを圧縮して作成した.zipの場合、C#、python、PowerShellのプログラムで.zipを解凍できません。その他の言語は未確認です。目次Windowsエクスプローラの圧縮方式Deflate64方式の圧縮ファイルは解凍できないまとめWindowsエクスプローラの圧縮方式Windowsエクスプローラの圧縮方式は、圧縮対象のサイズによって変化します。2GiB未満のファイルを圧縮するときは、Deflate方式2GiB以上のファイルを圧縮するときは、Deflate64方式になるようです。それぞれの詳細な圧縮アルゴリズムは不明ですが、Deflate64のほうが圧縮率が高い模様。実際に比較してみました。「1GB.zip」:1020KB「2GB.zip」:73KBとなっています。「2GB」のほうが倍のファイルサイズだったにも関わらず、Windowsエクスプローラで圧縮すると「2GB.zip」の方が1/10以上小さくなっています。※ちなみに「1GB」「2GB」共にfsutilというコマンドで作成したため、ファイルの内容によって圧縮率が異なるというのは考えにくいです。調べた結果、2GiB未満のファイルはDeflate方式、2GiB以上のファイルはDeflate64方式で圧縮されていることがわかってきました。Deflate64方式の圧縮ファイルは解凍できない圧縮方式がDeflateだろうがDeflate64だろうがプログラムで解凍できれば良いのですが、うまくいきません。試しにpythonで「2GB.zip」を解凍するプログラムを実施してみます。(deflate64)のようなエラーになります。pythonでは、deflate64方式で圧縮されたファイルの解凍に対応していないようです。C#、PowerShellで実装しても同様の結果になります。ちなみに、Deflate方式で圧縮されたであろう「1GB.zip」は上述のプログラムで解凍できました。「2GB」をpythonで圧縮すると2040KBの圧縮ファイルになります。「1GB.zip」の2倍のサイズです。このpythonで圧縮したファイルは、当然pythonで解凍することができました。まとめ現状、pythonやC#、PowerShellでDeflate64方式で圧縮された圧縮ファイルを解凍する術はないようです。7-zipというフリーの圧縮/解凍ツールはコマンドベースでファイルの解凍が実施でき、なおかつDeflate64方式に対応しているようです(※未確認)。してもプログラムでDeflate64方式の圧縮ファイルをプログラムで解凍したい場合は7-zipの導入を検討すべきかもしれません。Essential1,2を受講しましたので所感を述べます。IT経験者かつAWS初心者にはおススメできる内容ですが、費用...ソフトウェアPytorchのモデルを可視化するディープラーニングの学習モデルを作ったら、可視化したいですよね。今回は、Pytorchで学習モデルを作った際の可視化方法を紹介します。使用するライブラリは、「make_dot」です。make_dotを使っ...ソフトウェア「+Lhaca」で圧縮に失敗するファイルの圧縮/解凍をするツールとして有名なフリーソフトの「+Lhaca」。企業などで標準の圧縮/解凍ツールとして使われている方も多いのではないでしょうか。そんな「+Lhaca」ですが、特定のケースで圧縮に失...ソフトウェアOpenVINOの環境変数WindowsでOpenVINOを動かすには、cmd.exeで指定のbatを実行し、そのcmd.exeからOpenVINOを動かすプログラムを実行する必要があります。今回は、このbatファイルを実行せずにOpenVI...ソフトウェア【python】kivyのGUIアプリでinflateValidateが見つからない時の解決法(非推奨)Pythonの「Kivy」というフレームワークを使いGUIアプリを作っていたところ、エラーが発生し起動できない現象に遭遇しました。エラーと解決方法がわかりましたので、共有します。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。ヒゲメガネメーカー勤務のリーマンエンジニア。いろんなことを記事にします。ヒゲメガネメーカー勤務のリーマンエンジニア。いろんなことを記事にします。見た目はガチの、ヒゲ眼鏡ヒゲメガネをフォローする。