V4.0以前の機能を使って、大きなサイズのファイルを圧縮する|火消しに行って油を注ぐ火消しに行って油を注ぐ私の知りたいを解決するブログ。あとプログラミングのメモなど。V4.0以前の機能を使って、大きなサイズのファイルを圧縮するWindowsでコマンド実行でファイルを圧縮しようと思ったら結構ハマったのでメモ。課題Windowsの機能だけで、コマンドラインからファイル圧縮を実現する方法をいろいろ試してみたところ、以下のような問題が発生しました。ファイルを圧縮するようなOS標準コマンドが無いエクスプローラー上で右クリックから圧縮を選べば簡単にできるzipファイル。コマンドラインからファイルを圧縮するためには、PowerShellやVBスクリプトを駆使しなければ出来ません。今回はPowerShellを使ってみました。V5.0には「Compress-Archive」という便利なコマンドレットがあるのですが、2GBを超えるような大きなファイルは圧縮できません。「CreateEntryFromFile」を使用しても同じくエラーが発生します。"ストリームが長すぎます。"大きなファイルを圧縮する場合、Compress-Archive、CreateEntryFromFileは使えないようです。※そもそもWindowsではファイルサイズが大きければ大きいほど、圧縮ファイルが破損する可能性があるとのこと。PowerShellのバージョンが古い環境でも動作させたいPowerShellのバージョンが古くても動作するように、COMを使ったやり方を試してみました。CopyHereを使ってzipを作成するプログラム実行を確認した環境は以下の通りです。V2.0PowerShellのソースは以下の通り。500}ファイルフォーマットで、ヘッダが「PK\005\006」だと空のアーカイブと認識されます。([char]80は"P"、[char]75は"K")まず空のZIPを作成した後、CopyHereメソッドで圧縮したいファイルをZIPに追加。CopyHereは非同期なので、ZIPにファイルが追加されるまでSleepを入れながらZIPの中身をチェックしています。まとめ2GBを超えるファイルを圧縮してみましたが、この方法だとエラーは出ませんでした。上記プログラムで圧縮したファイルを解凍しても、今のところ問題は発生していません。Microsoftサポートには「正しく処理できない場合があります」という文章がありますので、使用は自己責任で。Next>自己紹介ヤマチヨ時代を逆行するレガシーエンジニア。末端SIerでシステムエンジニア紛いの仕事をしております。年齢を重ねるごとに加速する日々の中で、感じた事、考えた事を記録していきたいと思います。@_yamacho_人気記事ハードオフ・オフハウスで実際に売れたものまとめ。売れるもの・売れないもの。Excelのサイズが肥大化して動作が重い原因はたぶんこれ家族で大阪から福岡に帰省するなら車が楽。ヤマト便がサイズの上限を設定!重量と大きさの制限で送れないものが増えた!料金の値上げも実施!独学で地方公務員試験を受けたので、その振り返りなど(社会人経験者枠)【VB.NET】ネットワーク上のフォルダにアクセスしてユーザー/パスワード認証のダイアログを表示する5年間敷きっぱなしのカーペットをコインランドリーで洗濯しました。どんなことが聞かれるのか。どんなことが聞かれるのか。民間とは何が違う?論文試験の頻出テーマ「シティセールス」についての考察なぜ民間企業を辞めて地方公務員になろうと思ったのですか?独学で地方公務員の社会人採用試験を受験。働きながら合格は可能か。