Windowsにてプログラムを動かしていると実行するコマンドの文字数やファイルパスが長すぎてエラーが発生することがあります。
これはデフォルトで最大文字数260の制限がかけられているからです。
デフォルトで制限がかけられているいますが260文字以上を許容する設定に変更することが可能です。
今回はその方法について書いていきます。
まずはエラーが発生した場合の例について記載します。
エラーの内容
260文字以上のコマンド実行時
Microsoft Windows [Version 10.0.18362.267] (c) 2019 Microsoft Corporation. All rights reserved. C:\WINDOWS\system32>mkdir C:\work\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\12345678901234567890123456789012345678 ファイル名または拡張子が長すぎます。
エラーダイアログ
エラーメッセージ
ファイル名の長さは、対象のフォルダーに対して長すぎる可能性があります。短いファイル名に変更して再度実行するか、またはより短いパス名の場所に移動して試してください。
260文字制限解除方法
制限解除については「グループポリシーの変更」もしくは「レジストリの変更」のいずれかを対応する必要があります。
※どちらも同じ値を参照しているので片方の変更で両方の値が変わります。
設定変更方法1
グループポリシーを変更する
Windowsの検索より「gpedit」を入力し実行するか、「グループポリシーの編集」検索し実行
「コンピューターの構成」→「管理用テンプレート」→「システム」→「ファイル システム」へ移動し「Win32の長いパスを有効にする」をダブルクリック
「Win32の長いパスを有効にする」ウィンドウが表示されるので有効のラジオボタンにチェックを付けて「OK」で設定を変更する
※設定を未構成にした場合設定は変更されないため無効に戻したい場合は「無効」に変更するか「無効」後に「未構成」にしてください。
設定変更方法2
レジストリを変更する
Windowsの検索より「regedit」を入力し実行
「コンピューター」→「HKEY_LOCAL_MACHINE」→「SYSTEM」→「CurrentControlSet」→「Control」→「FileSystem」へ移動し「LongPathsEnabled」をダブルクリック
「DWORD(32ビット)値の編集」ウィンドウが表示されるので「値のデータ」に1を入力し「OK」で設定を変更する
もしくは下記のコマンドで変更することも可能です。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v "LongPathsEnabled" /t REG_DWORD /d 1 /f