見つけた情報
Windows 10では、ファイルパスの長さが260文字以内でないとファイルやフォルダが上手く扱えなかった。
Windows 11ではどうだろうか。
ちょっと期待してたけど、やはり最大260文字らしい。
でもちょっと待て。
こんな記事があるではないか。
要約すると、
レジストリ設定すれば260文字を超えてもOKにできるよ
ということらしい。
Node.jsを使っていると260文字を超える機会なんてしょっちゅうあるので、もし本当ならかなり助かる。
ちょっと試してみた。
筆者の環境
- Windows 11 Pro 64bit 21H2
試したこと
- 画面下部の虫眼鏡アイコンをクリックする。
- キーボードで「regedit」と入力する。
- 表示される「レジストリエディター」をクリックする。(筆者は英語環境なので上の画像は英語になっている)
- レジストリエディタのパス入力欄に
Computer\HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\Control\FileSystem
と入力し、Enterキーを押す。 - 画面右側に表示される「LongPathEnabled」という項目をダブルクリックする。
- 表示されるダイアログで「Value」の欄にある「0」を「1」に書き換える。
- OKボタンをクリックする。
最後に、PCを再起動する。
確認
300文字くらいの長ーーーいパスのフォルダを作って、そこにテキストファイルを置き、Sakuraエディタで編集・保存できるか試してみよう。
300文字を目視で数えるのは筆者のヨワヨワまなこが耐えられないので、10文字の名前のフォルダを繰り返し入れ子にしてパスを長くしていく。
手入力は面倒なので次の2つのPowerShellスクリプトを交互に実行してみた。
① New-Item testtest00 -ItemType “directory” # 意味:testtest00 という名前のフォルダをつくる
② Set-Location testtest00 # 意味:testtest00 フォルダの中に移動する
スタートはCドライブ直下。
上記スクリプトの①と②を交互に実行し、こんな入れ子構造をつくってみた。
既にフォルダパスだけで300文字を超えている。
ここにテキストファイルを追加するために右ペイン内で右クリックし、「New」という項目にマウスポインタを合わせると・・・
テキストファイルを新規作成するための項目が表示されなかった。
替わりに、「Folder」という項目だけが表示されている。
試しにクリックするとこんな画面が表示された。
「フォルダパスが長すぎるお」だって。怒られちゃった。
ならばと、PowerShellのNew-Itemコマンドで新規ファイル作成を試してみたら、あっさり成功した。
Sakuraエディタで開こうとしたら、
また怒られた。
でも、Windows 11標準のメモ帳で開いたら、
普通に開けた。編集・保存もできる。やったぜ。
フォルダの削除はエクスプローラ上からできた。
けど、パスが長すぎるという理由でゴミ箱には入れられず、「本当に削除」させられた。
つまり?
完全ではないものの、機能によっては260文字を超えるフォルダ・ファイルパスでも問題なく使えるようになる。
という認識でいた方が良いようだ。
今回調べた限りではこんな感じ:
できたこと
- PowerShellで260文字を超えるパスのフォルダを作る。
- PowerShellで260文字を超えるパスのファイルを作る。
- メモ帳で260文字を超えるパスのファイルを開き、編集・保存する。
- 260文字を超えるパスのフォルダの削除。ただし、ごみ箱には移動できず本当に削除することになる。
できなかったこと
- エクスプローラで260文字を超えるパスのフォルダを作る。
- エクスプローラで260文字を超えるパスのファイルを作る。
- 別のフォルダ(短いパス)からファイルをドラッグ&ドロップで260文字を超えるパスのフォルダ以下に移動する:何も起きなかった。