「Windowsのパス長さ制限に関して」の版間の差分
Notion-MW タグ: 差し戻し済み |
Notion-MW タグ: 手動差し戻し |
||
26行目: | 26行目: | ||
この制限は最近のWindowsならLongPathsEnabledというレジストリの値を1に設定することで解除できるとされている。例えばPowerShell上で以下を実行すればよい。 | この制限は最近のWindowsならLongPathsEnabledというレジストリの値を1に設定することで解除できるとされている。例えばPowerShell上で以下を実行すればよい。 | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="latex">Set-ItemProperty "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name LongPathsEnabled -value 1</syntaxhighlight> | ||
Set-ItemProperty "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name LongPathsEnabled -value 1</syntaxhighlight> | |||
また、現在の値を確認するには以下を実行する。 | また、現在の値を確認するには以下を実行する。 | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="javascript">(Get-Item -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem").GetValue("LongPathsEnabled")</syntaxhighlight> | ||
(Get-Item -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem").GetValue("LongPathsEnabled")</syntaxhighlight> | |||
しかし、制限を解除すれば全ての操作が支障なくできるというわけではない。例えば、Windows APIのマルチバイト文字方式の関数(末尾がAのもの)は長いパスに対応していない(末尾がWのワイド文字方式のものは対応している)らしく、これを使用しているアプリケーションはこの制限を解除しても正しく動かない。またエクスプローラ上での操作性もほとんど改善しない。 | しかし、制限を解除すれば全ての操作が支障なくできるというわけではない。例えば、Windows APIのマルチバイト文字方式の関数(末尾がAのもの)は長いパスに対応していない(末尾がWのワイド文字方式のものは対応している)らしく、これを使用しているアプリケーションはこの制限を解除しても正しく動かない。またエクスプローラ上での操作性もほとんど改善しない。 | ||
94行目: | 88行目: | ||
おそらくアプリケーション側の都合で、長さ制限を超えるパスをカレントディレクトリとしての起動に対応していないことがある。具体的には、Git Bashで、長い名前をもつフォルダを開いているとき、mspaintやcmdの実行に失敗する。次のようなメッセージが出る。 | おそらくアプリケーション側の都合で、長さ制限を超えるパスをカレントディレクトリとしての起動に対応していないことがある。具体的には、Git Bashで、長い名前をもつフォルダを開いているとき、mspaintやcmdの実行に失敗する。次のようなメッセージが出る。 | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="latex">Error: Current working directory has a path longer than allowed for a | ||
Error: Current working directory has a path longer than allowed for a | |||
Win32 working directory. | Win32 working directory. | ||
Can't start native Windows application from here. | Can't start native Windows application from here. |