Windows 11でZIPを展開するときに「パスが長すぎます」と表示されたら、最初に行うべき対処は、ZIPファイルと展開先を短いローカルパスへ移すことです。たとえばZIPをC:\Zipへコピーし、展開先をC:\xにすると、設定を変えずに解決できる場合があります。いきなりレジストリを変更したり、元データを削除したりする必要はありません。
このエラーは「ZIPの名前が長い」だけで起きるとは限りません。展開後に作られる保存先のパス、ZIP内部のフォルダー階層、ファイル名を足した結果が長くなった場合や、展開に使うアプリが長いパスへ対応していない場合にも発生します。本記事では、データを失いにくい順番で切り分ける方法を説明します。
まず試す最短の対処手順
作業前にZIPの元ファイルを残し、展開途中でできた不完全なフォルダーとは別の、空のフォルダーを用意してください。受け取ったZIPが信頼できる送信元のものかも確認します。
- エラー画面に表示されたファイル名やパスをメモする。
- Cドライブ直下に
C:\ZipとC:\xのような短い作業フォルダーを作る。 - ZIPをダウンロード、デスクトップ、OneDrive、共有フォルダーから
C:\Zipへコピーする。最初は移動ではなくコピーにし、元ファイルを残す。 - コピーしたZIPを右クリックして「すべて展開」を選び、展開先に
C:\xを指定する。 - 展開できたら必要なファイルを開いて確認し、目的の保存先へ少しずつ移す。移動先で再びエラーになる場合は、移動先の階層や名前も短くする。
ZIPファイル自体の名前を短くすることも、ZIPまでのパスを少し短縮する効果があります。ただし、ZIP内部の深いフォルダー構造や長いファイル名は変わりません。外側のZIP名を短くしただけで直らない場合は、次の仕組みを確認します。
ZIPの展開でパスが長くなる理由
ZIPにはファイル本体だけでなく、アーカイブ内での相対的なフォルダー構造も保存されています。展開時の最終パスは、概ね次の組み合わせです。
展開先のパス + ZIP内部のフォルダー階層 + ファイル名
たとえばZIPの中にproject\source\components\customer-management\release\very-long-file-name.txtが入っているとします。これをユーザープロファイル配下の深いOneDriveフォルダーへ展開すれば、その前にC:\Users\ユーザー名\OneDrive - 組織名\...が加わります。ZIPを開いて見えている名前が短くても、完成する絶対パスはかなり長くなります。
従来の多くのWin32処理では、MAX_PATHとして知られる約260文字の制約が問題になります。一方、Windowsにはそれより長いパスを扱えるAPIもあります。ただし、ファイルシステムが長いパスを保持できることと、エクスプローラーや展開アプリがそのパスを正しく扱えることは同じではありません。Microsoftも、シェルとファイルシステムでは要件が異なると説明しています。
また、パス全体とは別に、1つのフォルダー名やファイル名など各要素にも上限があります。目的地を短くしても、ZIP内部に極端に長いファイル名が1つあると、その項目だけ失敗する可能性があります。「ほとんど展開できたが一部だけエラー」という場合は、エラーに出た項目名を控えておくと原因を絞れます。
Windows標準の「すべて展開」で知っておきたい制約
Windowsの標準機能では、ZIPを右クリックして「すべて展開」を実行できます。Windows 11 バージョン24H2では、ZIPに加えてRAR、7z、TAR形式も標準対応の対象です。ただしMicrosoftの案内では、暗号化されたアーカイブの操作は標準機能の対応外です。パスのエラーに見えても、実際はパスワード付きZIPや暗号化方式が原因ということがあります。
標準機能が失敗したからといって、Windows全体が長いパスを一切扱えないとは限りません。逆に、長いパスのポリシーを有効にしたからといって、「すべて展開」を含むすべてのアプリが自動的に対応するわけでもありません。処理を行うアプリ側の実装が関係するためです。
- 最初から失敗する:展開先までのパス、アクセス権、暗号化、ZIPの破損を確認する。
- 途中の特定ファイルで失敗する:ZIP内部の深い階層、長いファイル名、1要素の長さを確認する。
- 展開はできるが移動できない:最終保存先のパス、OneDriveや共有先の制限、使用するアプリの対応を確認する。
展開途中のフォルダーには一部のファイルだけが作成されている場合があります。エラー後に同じ場所へ上書きを繰り返すと、どこまで正常か分かりにくくなります。試行ごとに空の展開先を用意し、成功後に内容を比較するのが安全です。
データを守りながらパスを短くする方法
安全性を優先するなら、まずシステム設定に触れず、作業場所と名前を見直します。効果が大きいのは、ZIPの保存場所と展開先の両方を短くすることです。
- ZIPの場所を短くする:
C:\Zip\a.zipのようにする。ダウンロードフォルダーの深いサブフォルダーやメール添付の一時領域から直接展開しない。 - 展開先を短くする:
C:\xなど、ルートに近い空のフォルダーを使う。ZIP名と同名の長いフォルダーを何重にも作らない。 - 外側の名前を短くする:ZIP名や作業フォルダー名を簡潔にする。ただし拡張子
.zipは残す。 - 展開後に段階的に移す:まず短い場所で内容を確認し、その後に必要なフォルダーだけを最終保存先へ移す。
- 元データを消さない:展開結果を確認するまでは、受け取ったZIPとバックアップを保持する。
管理者権限でエクスプローラーを起動したり、フォルダーの所有者を強制変更したりする方法は、パス長の根本対策ではありません。アクセス拒否とパス長エラーは別問題です。会社のPCでは、勝手に権限やポリシーを変えず、エラーのパスと再現手順を添えてIT管理者へ相談してください。
インターネットから取得したZIPの場合、展開できたことと中身が安全であることも別です。実行ファイルやスクリプトを開く前に、送信元、電子署名、Microsoft Defenderのスキャン結果を確認します。パス問題を解決するためにセキュリティ機能を無効化する必要はありません。
tarとExpand-Archiveで内容を診断する
エクスプローラーで原因が分からないときは、Windows TerminalのPowerShell画面から、Windowsに含まれるtarコマンドでZIP内のパスを一覧表示できます。Microsoftの現行ドキュメントでは、Windows版tarはZIPを含む複数のアーカイブ形式の一覧表示と展開に対応しています。tarはPowerShell固有のコマンドレットではなく、Windowsに含まれるコマンドラインツールです。
まず展開せずに一覧だけを表示します。ZIPのパスに空白が入る可能性があるため、引用符で囲みます。
tar -tf "C:\Zip\sample.zip"
一覧の中に、異常に深い階層や長い名前がないか確認します。内容と送信元に問題がなく、空のC:\xへ展開するなら、次のように実行できます。
tar -xf "C:\Zip\sample.zip" -C "C:\x"
別の公式手段として、PowerShellのExpand-ArchiveはZIPを指定したフォルダーへ展開できます。角かっこなどワイルドカードとして解釈され得る文字を含む名前には、-LiteralPathを使います。
Expand-Archive -LiteralPath "C:\Zip\sample.zip" -DestinationPath "C:\x2"
ただし、tarやExpand-Archiveへ切り替えれば長いパスが必ず解決する、という公式保証はありません。目的は、標準の「すべて展開」と結果を比較し、ZIPが読めるか、どの項目で失敗するかを切り分けることです。既存ファイルを意図せず上書きしないよう、毎回新しい空フォルダーを展開先にしてください。コマンドが見つからない、または会社のポリシーで実行できない場合は無理に続けません。
長いパスの設定を有効にする場合の条件と注意点
Windows 10 バージョン1607以降では、多くのWin32ファイル操作で従来のMAX_PATH制限を緩和できる仕組みがあります。しかしMicrosoftの説明では、長いパスの動作にはWindows側でLongPathsEnabledが有効であることと、アプリのマニフェストでlongPathAwareが宣言されていることの両方が必要です。設定だけを有効にしても、未対応アプリまで一律に変わるわけではありません。
Windows ProやEnterpriseなど、ローカルグループポリシーを利用できる環境では、「コンピューターの構成」から「管理用テンプレート」「システム」「ファイルシステム」「Win32の長いパスを有効にする」に相当するポリシーで管理できます。組織ではドメインポリシーやMicrosoft Intuneから制御されている場合もあります。
レジストリのHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemにあるLongPathsEnabledでも同じ設定を管理できますが、これは管理者向けのシステム設定です。誤ったキーや値を変更すると別の動作へ影響するため、短いパスでの展開を先に試し、復元方法とバックアップを用意できる場合だけ検討してください。会社支給PCではIT管理者の承認を得ます。
設定値はプロセスごとにキャッシュされるため、既に起動中のアプリでは反映されず、再起動が必要になる場合があります。変更後も、対象の展開アプリがlongPathAwareでなければ効果は期待できません。設定の成否は「ポリシーが有効か」だけでなく、短いテスト用ZIPと問題のZIPをそれぞれ空フォルダーへ展開して確認します。
OneDriveとネットワーク共有で起きる場合
OneDrive同期フォルダーでは、ユーザーフォルダー名や組織名がパスの先頭に加わるため、ローカルでは想像以上に長いパスになります。Microsoftの現行案内では、OneDriveとMicrosoft 365のSharePointは、デコード後のファイル名を含むパス全体に400文字の制限があります。PCへ同期する場合は、各パス要素が255文字以内であることや、OneDriveルートと相対パスの合計が520文字以内であることに加え、エクスプローラーや利用アプリ側の制限も受けます。
そのため、OneDrive内のZIPをOneDrive内へ直接展開するのではなく、まずC:\ZipからC:\xへローカル展開し、確認後に必要なファイルだけをOneDriveへ移します。ローカル展開には成功してもOneDriveへ戻す段階で失敗するなら、OneDrive側のフォルダー階層または名前を短くする必要があります。ローカル設定のLongPathsEnabledだけで、クラウドサービス側の上限を解除することはできません。
ネットワーク共有では、\\server\share\部署\案件\...のようにサーバー名や共有名もパスの一部です。いったん短いローカルフォルダーへコピーして展開し、必要なファイルを共有先へ戻すと、展開処理と共有先の制限を分けて確認できます。ドライブ文字を割り当てると表示上は短く見えますが、すべてのアプリの内部処理まで変わるとは限らないため、恒久対策とは決めつけないでください。
\\?\や\\?\UNC\server\shareという拡張長パスの形式はWindows APIで用いられますが、通常のエクスプローラー操作へそのまま入力するための万能な回避策ではありません。相対パスでは使えず、アプリ側の対応も必要です。一般利用では、短いローカル作業場所とフォルダー設計の見直しを優先するほうが確実です。
解決しない場合の切り分けと再発防止
C:\xのような短い展開先でも失敗する場合は、単純な保存先の長さ以外を確認します。エラーメッセージを閉じる前に画面を保存し、同じZIPを何度もダウンロードし直す前に、ファイルサイズや送信元の案内も照合してください。
- ZIP内部のパスが長い:
tar -tfで一覧を確認し、特定の深いフォルダーや長いファイル名に集中していないかを見る。 - 1つの名前が極端に長い:保存先を短くしても各パス要素の上限に当たることがある。作成者に名前を短くしたZIPの再作成を依頼する。
- ZIPが破損している:一覧表示にも失敗する、別PCでも同じ場所で止まる、配布元のサイズと一致しない場合は、送信者から再取得する。
- 暗号化されている:Windows 11 24H2の標準アーカイブ機能は暗号化アーカイブの操作に対応しないため、作成者が指定した信頼できる対応アプリと手順を使う。
- アクセス権や空き容量の問題:自分のローカル作業フォルダーを使い、Cドライブの空き容量を確認する。保護されたシステムフォルダーへ展開しない。
- セキュリティ製品が検出した:検出を除外して強行せず、ファイルを隔離したまま送信元と内容を確認する。
自分がZIPを作成して配布する側なら、受け手の環境を設定変更させるより、アーカイブ設計を見直すほうが再発防止になります。
- ZIP直下のルートフォルダーは、製品名や案件名を簡潔にした1階層程度にする。
- 同じ意味のフォルダー名を何階層も重ねず、深い階層と長い説明的な名前を同時に使わない。
- 日付、版数、担当名などをすべての階層へ重複して入れず、必要な情報はREADMEや管理表へ分ける。
- 配布前にZIPの内部一覧を確認し、最長の相対パスと長いファイル名を短縮する。
- Windows標準機能を利用してもらう前提なら、暗号化アーカイブを避けるか、対応アプリと安全な入手先を明記する。
- OneDrive、SharePoint、ネットワーク共有へ最終保存する運用を想定し、実際に近い環境で展開と再配置をテストする。
短いローカルパスで正常に展開できれば、Windowsの設定変更は不要です。そこで失敗したときだけ、ZIP内部の構造、暗号化や破損、アプリの対応状況、長いパスのポリシーを順番に確認してください。この順序なら、設定変更による影響を抑えながら原因を特定できます。

コメント