ZIPファイルの解凍時に発生する「0x80010135 パスが長すぎます」エラーの修正方法
アーカイブを操作したりファイルをコピーしたりしているときに、「パスが長すぎます」というエラーメッセージ0x80010135が表示されるのは、決して珍しいことではありませんが、Windowsのファイルパス処理方法に慣れていないと、厄介な問題になることがあります。奇妙なことに、Windowsではファイルパスの長さが260文字に制限されており、この制限を超えると、特に深いフォルダ構造内やアーカイブ内の長いファイル名の場合、システムが異常終了します。ファイルの削除、コピー、解凍が一切できなくなることもあり、トラブルシューティングが少々面倒になります。なぜうまくいく場合とうまくいかない場合があるのかは定かではありませんが、ファイル名を短くしたり、長いパスのサポートを有効にしたり、よりスマートな解凍方法を使用したりすることで、多くの場合は回避できます。少し辛抱すれば、頭を悩ませることなく解決できるでしょう。
エラー0x80010135を修正する方法
ルートディレクトリにファイルを抽出する
この方法は非常に強力で、面倒な長いパス制限に達する可能性を最小限に抑えることができます。アーカイブをC:\やD:\などのルートに直接抽出します。アーカイブの名前が非常に長い場合は、ルートに直接コピーしてから、もう一度抽出してみてください。ファイルをルートに配置すると、長いフォルダーツリーの奥深くに埋もれることがなくなり、通常はそこに問題が生じます。セットアップによっては、この方法の方がうまくいく場合があります。奇妙ですが事実です。アーカイブが長い名前のフォルダー内にある場合は、最初にルートに移動する必要があることに注意してください。これは、デフォルトで長いディレクトリ名になっている可能性のあるネットワークドライブや外付けドライブから抽出する場合に特に便利です。
アーカイブの名前を短く変更する
アーカイブに短い名前を付けるだけで、驚くほどの効果が得られることがあります。アーカイブを含むフォルダを開き、右クリックして「名前の変更」を選択し、短くて分かりやすい名前にしましょう。解凍したファイルや内部フォルダ構造の名前が長すぎる場合は、それらも変更してみてください。複雑なアーカイブの場合は面倒ですが、パスの長さ制限を回避するには十分な場合が多いです。内部フォルダの名前を変更できない場合は、少なくともアーカイブ名を短くしてください。解凍プロセスが楽になります。
長い名前のサブフォルダのみ抽出する
勇気があるなら、お好みのツール(7-ZipやWinRARなど)でアーカイブを開いてみてください。すべてを一度に解凍するのではなく、長すぎるファイル名を持つフォルダやファイルだけを抽出します。その後、それらを短い名前のフォルダに移動または整理します。これを分割して行うことで、各ステップで処理内容を制御できるため、パスの制限に達するのを防ぐことができます。また、解凍前にデスクトップまたはC:\に新しい短い名前のフォルダ構造を作成しておくと、ファイル名を短く保つことができます。私の経験では、この方法は少し面倒ですが、通常はうまくいきます。
レジストリエディターで長いパスのサポートを有効にする
これは少し技術的に感じるかもしれませんが、パスの長さの問題が頻繁に発生する場合は行う価値があります。 Windows では、既定で 260 文字を超えるパスのサポートが無効になっていますが、再び有効にすることができます。 を押しWindows + R、regeditと入力して Enter キーを押して、レジストリ エディターを開きます。Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemに移動します。LongPathsEnabledキーを見つけてダブルクリックし、その値を 1 に設定します。 このキーは既定では存在しない可能性があるため、 として作成する必要がありますDWORD (32-bit) Value。 なぜ役立つのでしょうか。 長いパスのサポートを有効にすると、Windows エクスプローラーやその他のツールで 260 文字を超えるパスを処理できるようになり、深くて複雑なフォルダー構造の場合に大変革をもたらすためです。 注意: 一部のアプリでは、変更を認識させるために再起動が必要になる場合があります。
あるいは、コマンドに慣れているならPowerShellを使うこともできます。PowerShellの方が簡潔で高速です。Windows PowerShellを管理者として実行し(「Windows PowerShell (Admin)Windows + X 」を選択して)、次のように入力します。
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
このコマンドは同じ設定を切り替えます。実行後は通常、再起動が必要です。
グループポリシーエディターで長いパスのサポートを有効にする
Windows 10/11 Pro または Enterprise をお使いの場合は、グループポリシーエディターでも同様のことができます。 を押しWindows + R、 と入力してEnter キーを押します。 「コンピューターの構成」>「管理用テンプレート」>「システム」>「ファイルシステム」gpedit.mscに進みます。「Win32 の長いパスを有効にする」を見つけてダブルクリックし、「有効」に設定します。「OK」をクリックします。これでシステム全体で長いパスのサポートが有効になり、扱いにくいアーカイブやネストされたフォルダの処理が大幅に改善されます。ただし、このポリシーが利用できない場合(Windows Home エディションなど)は、レジストリを使用する方法が有効です。
コマンドラインツールを使用してファイルをコピーする
パスの長さが原因で解凍がうまくいかない場合は、xcopyまたはなどのコマンドを使ってファイルをコピーすることでrobocopy問題を回避できます。管理者権限でコマンドプロンプト(Windows + Xを押して「コマンドプロンプト(管理者) 」を選択)またはPowerShellを起動してください。以下のコマンドを使用してください。
xcopy "source_path" "dest_path" /O /X /E /H /K
または、robocopy の場合は以下を試してください。
robocopy "source_path" "dest_path" /E /COPYALL
これらのツールはWindowsエクスプローラーよりも長いパスをわずかにうまく処理できるため、このアプローチはパスの長さの問題を回避することがよくあります。常にうまくいくのでしょうか?すべてのケースでうまくいくとは限りませんが、他の方法がうまくいかない場合は試してみる価値はあります。
より優れたアーカイブツールに切り替える
Windowsに標準搭載のZIP解凍ソフトでは、特にファイル名が長い場合、うまく解凍できないことがあります。7 -ZipやWinRARなどのプログラムは、パスの長さに関してより柔軟に対応します。Windowsのデフォルトの解凍ソフトではうまく解凍できないような場合でも、 7-ZipやWinRARなどのプログラムは問題なく解凍できます。さらに、圧縮・解凍オプションをより細かく制御できるため、このようなエラーやその他のアーカイブエラーを回避しやすくなります。
マルウェアをスキャンする
マルウェア感染はファイルを破損させたり、操作を妨害したりしてエラーを引き起こす可能性があります。ウイルス対策ソフトまたはWindows Defenderでフルスキャンを実行してください。リアルタイム保護はオンのままにし、可能であればクラウドスキャンも検討してください。マルウェアは長いファイル名や隠しファイルを作成し、パスエラーを引き起こすことがあります。そのため、感染をクリーンアップすることで問題が解決し、システム全体を保護できる可能性があります。
システムファイルの破損を修正する
破損したシステムファイルは、パス関連エラーを含む様々な奇妙なエラーの背後に潜む原因となる可能性があります。管理者特権のコマンドプロンプトでコマンドdism /online /cleanup-image /restorehealthを使用してくださいsfc /scannow。これらのコマンドは、不足または破損したWindowsファイルをスキャンして修復します。通常、最初にDISMを実行すると、SFCの処理速度が向上します。特にシステムがクラッシュしている場合は数分かかる場合がありますが、システムの不具合を解消するための良いステップです。その後、再起動してエラーが解消されるかどうかを確認してください。
Windowsを最新の状態に保つ
もちろん、Windows は一部のエラーの修正を必要以上に困難にしているからです。定期的にアップデートを確認することで、バグを修正し、互換性を向上させることができます。「設定」>「更新とセキュリティ」に移動し、「更新プログラムの確認」をクリックします。アップデートが利用可能な場合は、インストールして再起動し、改善するかどうかを確認してください。ロングパスの問題は最新のパッチで解決されている場合があるため、OS を最新の状態に保つことをお勧めします。