Windowsで巨大ファイルを含むフォルダをZIP(無圧縮)に格納する方法

Windowsで巨大ファイルを含むフォルダをZIP(無圧縮)に格納する方法

こんにちは!

複数の大容量のファイルを含むフォルダをバックアップやアーカイブする際、ZIPファイルに格納することがよくあります。

しかし、既に圧縮済みのファイル(動画、画像、PDFなど)を再圧縮すると、処理時間がかかる割に圧縮効果が少かったり、圧縮にものすごく時間がかかってしまうことがあります。別に容量を制限したいわけでなく、単に複数のファイルを単にひとまとめにしたいときには「無圧縮ZIP」(ストアモード)が1つの選択肢となります。

この記事では、特に巨大ファイル(数GB〜数十GB)を含むフォルダを無圧縮ZIPに格納する方法について解説します。

Windows標準機能の限界

Windows Explorerの標準ZIP機能では、ファイルを右クリックして「送る」→「圧縮(zip形式)フォルダー」を選択できますが、これには2つの問題があります

  1. 無圧縮(ストアモード)を選択するオプションがない
  2. いちいち圧縮してしまうので大容量ファイルの処理に時間がかかる

PowerShellの無圧縮ZIPコマンドと制限

PowerShellにはCompress-Archiveコマンドレットがあり、-CompressionLevel NoCompressionオプションで無圧縮ZIPを作成できます。

Compress-Archive -Path "C:\example_backup" -DestinationPath "C:\temp\example_backup.zip" -CompressionLevel NoCompression

しかし、このコマンドには制限があるんです

  • 最大ファイルサイズは2GBまで(Microsoft .NET APIの制限による)
  • 実際には20GB程度のフォルダサイズでエラーが発生することが多い

実際のエラーメッセージ例

大きなファイルを含むフォルダで実行すると、以下のようなエラーが発生します

"3" 個の引数を指定して "Write" を呼び出し中に例外が発生しました: "ストリームが長すぎます。"
発生場所 C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive\Microsoft.PowerShell.Archive.psm1:820 文字:29
+ ...                     $destStream.Write($buffer, 0, $numberOfBytesRead)
+                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : IOException

権限が制限されている場所に出力しようとすると、以下のエラーが発生することもあります

New-Object : "2" 個の引数を指定して ".ctor" を呼び出し中に例外が発生しました: "パス 'C:\example_backup.zip' へのアクセスが拒否されました。"
発生場所 C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive\Microsoft.PowerShell.Archive.psm1:729 文字:30
+ ... ileStream = New-Object -TypeName System.IO.FileStream -ArgumentList $ ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object]、MethodInvocationException
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

つまり、PowerShellのCompress-Archiveは小〜中規模のファイルには便利ですが、巨大ファイルには適していないんです。

ていうか、いちいち個別ファイルのサイズなんて気にせずZIPにしたいですよね

7-Zipを使った解決策

そんなときはやっぱり最強のzipソフトウェア「7-Zip」の出番となります。
これはオープンソースの高性能圧縮・解凍ソフトウェアで、素晴らしいです。

  • 無圧縮(ストアモード)での保存が可能
  • ファイルサイズの制限が実質的にない(50GB以上のファイルも処理可能)
  • コマンドラインからの操作が可能
  • 様々な圧縮形式に対応

Chocolateyを使った7-Zipのインストール方法

さて、では、7-Zipをコマンドラインでインストールしましょう。私はChocolateyというWindows版のaptのようなパッケージマネージャをつかってます。
コマンドラインから簡単に7-Zipをインストールできます。

1. Chocolateyのインストール(まだインストールされていない場合)

PowerShellを管理者権限で開き、以下のコマンドを実行します:

Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

2. 7-Zipのインストール

Chocolateyがインストールされたら、
ひきつづき Powershellの管理者権限で、以下のコマンドで7-Zipをインストールします

choco install 7zip -y

-yオプションは、確認プロンプトに自動的に「はい」と回答します。

7-Zipを使った無圧縮ZIPの作成手順

さて実際に7-Zipを使って無圧縮ZIPを作成していきましょう

例として、C:\example_backupフォルダを無圧縮ZIPに格納します。

PowerShellでの実行手順

  1. PowerShellを開きます(管理者権限は不要です)
  2. 以下のコマンドをPoweshellにペタっとしましょう
$7zipPath = "C:\Program Files\7-Zip\7z.exe"
& $7zipPath a -tzip -mx0 "C:\temp\example_backup.zip" "C:\example_backup\*"

このコマンドの説明

  • a: アーカイブに追加するコマンド
  • -tzip: ZIP形式を指定
  • -mx0: 無圧縮(ストアモード)を指定
  • 最初のパスは出力先のZIPファイル
  • 2番目のパスは圧縮するフォルダ内のすべてのファイル
  1. 処理が完了するまで待ちます(大容量ファイルの場合は時間がかかります)

まとめ

巨大ファイルを含むフォルダを無圧縮ZIPに格納するには

  1. Windows標準のZIP機能は無圧縮オプションがなく不向き
  2. PowerShellのCompress-Archiveは2GB以上のファイルで問題が発生
  3. 7-Zipが最適な解決策(Chocolateyでのインストールが簡単)
  4. 7-Zipのコマンドライン(-mx0オプション)で無圧縮ZIPを作成可能

Windowsで巨大ファイルをふくむフォルダのZIP化は7-Zipにおまかせ!ですね

Read more

LLM推論基盤プロビジョニング講座 第2回 LLMサービスのリクエスト数を見積もる

LLM推論基盤プロビジョニング講座 第2回 LLMサービスのリクエスト数を見積もる

こんにちは! 今回はLLM推論基盤プロビジョニング講座 第2回です! STEP2 LLMサービスへのリクエスト数見積もり それでは、早速、LLM推論基盤プロビジョニングの第2ステップである「リクエスト数見積もり」の重要性と方法を解説いたします。 LLMサービスを構築する際に必要となるGPUノード数を適切に見積もるためには、まずサービスに対して想定されるリクエスト数を正確に予測する必要があります。 リクエスト数見積もりの基本的な考え方 LLMサービスへの想定リクエスト数から必要なGPUノード数を算出するプロセスは、サービス設計において非常に重要です。過小評価すればサービス品質が低下し、過大評価すれば無駄なコストが発生します。このバランスを適切に取るための基礎となるのがリクエスト数の見積もりです。 想定リクエスト数の諸元 リクエスト数を見積もるための5つの重要な要素(諸元)をみてみましょう。 1. DAU(Daily Active Users): 1日あたりの実際にサービスを利用するユーザー数です。これはサービスの規模を示す最も基本的な指標となります。 2. 1日

By Qualiteg コンサルティング
Zoom会議で肩が踊る?自動フレーミング映像安定化とAIによる性能向上の可能性

Zoom会議で肩が踊る?自動フレーミング映像安定化とAIによる性能向上の可能性

こんにちは! 本日は、自動フレーミング映像の安定化に関するアルゴリズム・ノウハウを解説いたします 第1章 問題の背景と目的 バストアップ映像を撮影する際、特にオンラインミーティングやYouTubeなどのトーク映像では、人物がうなずく、首を振るなどの自然な動作をした際に「首まわりや肩がフレーム内で上下に移動してしまう」という現象がしばしば起こります。これは、多くの場合カメラや撮影ソフトウェアが人物の「目や顔を画面中央に保とう」とする自動フレーミング機能の働きに起因します。 撮影対象の人物が頭を下げた際に、映像のフレーム全体が相対的に上方向へシフトし、その結果、本来動いていないはずの肩の部分が映像内で持ち上がっているように見えてしまう現象です。 本稿では、この問題を撮影後の後処理(ポストプロセッシング)のみを用いて、高速、高い精度かつロバストに解決する手法をご紹介します。 前半では、従来のCV(コンピュータービジョン)の手法を使い高速に処理する方法をご紹介します。後半では、AIを使用してより安定性の高い性能を実現する方法について考察します。 第2章 古典手法による肩の上下

By Qualiteg 研究部
LLM推論基盤プロビジョニング講座 第1回 基本概念と推論速度

LLM推論基盤プロビジョニング講座 第1回 基本概念と推論速度

こんにちは! 本日は LLMサービスの自社構築する際の推論基盤プロビジョニング、GPUプロビジョニングについて数回にわけて解説いたします。 はじめに LLMの進化に伴い、ChatGPTやClaudeといったパブリックなLLMの活用は企業においても急速に広がってきました。しかし先進的な企業はこれらの汎用LLMに加えて、「領域特化型」「ドメイン特化型」といった専用LLMの構築へと歩みを進めています。こうした動きの背景には、企業固有の専門知識への対応力強化と情報セキュリティの確保という二つの重要なニーズがあります。 一般的なパブリックLLMでは対応できない企業固有の専門知識や機密情報の取り扱いが必要なケースが増えているため、自社LLMの構築や自社サーバーでの運用を検討する企業が急増しています。特に金融、医療、製造、法務といった専門性の高い領域では、業界特化型の独自LLMが競争優位性をもたらすと認識されています。 しかし、業界特化型のLLMを自社で運用することは簡単ではありません。自社運用を決断した場合、まず最初に取り組むべきは適切な推論環境の整備です。オンプレミス環境を構築するに

By Qualiteg コンサルティング
Startup JAPAN 2025 に出展いたしました

Startup JAPAN 2025 に出展いたしました

こんにちは! 2025年5月8日(木)-5月9日(金)に東京ビッグサイトで開催された Startup JAPAN 2025 に出展いたしましたので、簡単にレポートいたします😊 開催概要 出展概要 今回は当社が開発するアバター動画生成AI「MotionVox™」を中心に出展させていただきました! 展示会について簡単にふりかえってみたいとおもいます 当社ブース 当社ブースはこんなかんじです。 今回は、ブースというか、このイーゼルのような雰囲気の木枠にポスターをくっつけるというスタイルでの展示方式でした。 こういう方式ははじめてなので斬新でした。おそらくこの方式で相当なコストダウンを図れておりスタートアップにはうれしいですね。セットアップも数分で終わりました。 会場 今回の会場はビッグサイトの南ホールでした。南ホールは、ビッグサイト入口からすぐそこなので駅から会場までたいして歩かず、疲れずに行くことができアクセスがとても良いです。 ホールは広めですが、ところせましと400社の出展会社がひしめきあっておりスタートアップの勢いのある会場となっており

By Qualiteg ビジネス開発本部 | マーケティング部