ニュース
エクスプローラーで正常なZIPを『無効です』と展開できない原因をマイクロソフトが解説
回避策や技術的な背景も
2026年6月25日 15:06
Windowsの「エクスプローラー」でZIP形式の書庫ファイルを展開(解凍)しようとすると、 『フォルダーを開くことができません。圧縮 (zip 形式) フォルダー ‘C:¥…….zip’ は無効です。』 というエラーが表示されて展開できないことがある。日本マイクロソフト(株)のサポートチームが6月24日、公式ブログ「Microsoft Japan Windows Technology Support Blog」でこの問題について解説する記事を公開した。
それによると、この問題の原因は「エクスプローラー」のZIP展開処理をつかさどるライブラリ 「zipfldr.dll」の仕様 にある。このライブラリはZIP書庫ファイルに含まれる各エントリ(つまり、圧縮されたファイル)の名前の長さをチェックしているが、それがパスの最大長(MAX_PATH)である260バイト以上になっていると、ZIP書庫ファイル全体を『無効』と判定する。
この場合、ZIP書庫ファイルは実際には壊れておらず、「PowerShell」の「Expand-Archive」コマンドレットや「7-Zip」などのサードパーティー製アプリを利用すれば正常に展開できる。
この現象は、Windows 11のすべてのバージョン、およびWindows Server 2016以降で共通して発生する。注意したいのは、以下の3点だ。
- 『文字数』ではなく『バイト長』で判定:エントリの名前の長さは、ZIPヘッダーに記録された生のバイト数が基準。UTF-8エンコードのZIPならUTF-8、Shift_JISならShift_JISのバイト長で判定される
- ZIP内部の相対パス(エントリ名)だけが対象:展開先の絶対パス(C:¥Users¥xxx……)は判定に関係しない
- 「LongPathsEnabled」レジストリは効かない:MAX_PATH制限を緩和する設定を行っていても、「zipfldr.dll」はそのAPIを利用していないため、エラーを回避することはできない
とくに日本語環境の場合は、エントリのファイル名がMAX_PATH制限に引っかかりやすくなる。これはUTF-8エンコードの場合、日本語の1文字あたり3バイト(文字種にもよる)を消費するためだ。つまり、日本語パスは実質的に約86文字が上限となる。
対策としては、以下が考えられる。
- 「PowerShell」の「Expand-Archive」コマンドレットで展開する(推奨):このコマンドレットは「.NET」の「System.IO.Compression」を使った展開機能で、「zipfldr.dll」の制限を受けない。「Windows PowerShell 5.1」以降に標準搭載されており、追加のインストールは不要
- 「7-Zip」などのサードパーティー製ツールで展開する:独自の実装を使っているため、「zipfldr.dll」の制約を受けない
- ZIP作成時にファイル名・フォルダー名を短くしておく:作成元の段階で、260バイトの制限に収まるようにしておく
ブログ記事では、なぜこのような制限があるのかといった歴史的・技術的背景も解説されているので、興味のあるユーザーは参照してほしい。























