Windows でファイルやフォルダのコピー・移動などをしようとした際、「対象のパスが長すぎます」と表示されて操作できない事がある。
対象のパスが長すぎます
ファイル名の長さは、対象のフォルダーに対して長すぎる可能性があります。短いファイル名に変更して再実行するか、またはより短いパス名の場所に移動して試してください。
エラーメッセージの通り、操作しようとしたファイルやフォルダのパスが長すぎて Windows が扱えない場合に発生するエラーだ。このようなメッセージが出た場合の対処方法を紹介しよう。
対象のパスが長すぎますと言われる理由
このエラーメッセージは、Windows が扱えるファイルパスの長さに制限が課せられていることが理由で発生する。通常 Windows で扱えるファイル・フォルダ名の長さは最大255文字、パスの長さは最長260文字程度となっている。この制限を超えると上記のようなエラーが表示される。
この制限は Windows で利用される API によるものなので、これを利用しているエクスプローラーなどの Windows 標準機能だけでなく、サードパーティ製のファイラーなども影響を受ける。
ファイル・フォルダ名を短くする
最も手軽な方法はファイル・フォルダ名を短く変更する、もしくは短いフォルダに移動させることだ。
ファイル・フォルダ名を変更するには、選択した状態で F2 もしくは右クリックメニューから名前の変更を選択する。
ファイルの移動は単に対象のファイル・フォルダをドラッグアンドドロップすれば良い。例えば C ドライブ直下に適当な短い名前のフォルダを作成し、その中に移動させて作業すればわかりやすいと思う。
このような感じで C 直下に「test」というフォルダを作ってそこで作業すればパスの長さは短くなる。
ネットワークドライブに割り当てて利用する
ファイルパスが長すぎる場合でも、ネットワークドライブに割り当てたら操作できるようになる。
ネットワークドライブは PC のフォルダにネットワーク経由でアクセスするための機能で、割り当てることでローカルドライブのように利用することができる機能だ。
ネットワークドライブの設定を行うには、UNC と呼ばれる Windows で利用されるパス表記を指定する必要がある。以下のような書式だ。
\\PCの名前\ドライブレター$\フォルダのパス
PC の名前は「設定」の「システム」より確認できる。
例えば PC の名称は 「DESKTOP_PC」で「D」ドライブの「Test」フォルダをネットワークドライブとして割り当てる場合には、以下のようになる。
\\DESKTOP_PC\D$\Test
パスが長すぎるフォルダのパスを上記形式で作成しよう。
作成できたら以下の手順でネットワークドライブを割り当てる。
- ネットワークの割り当てを開く
-
エクスプローラーから「PC」を右クリックし、「ネットワークの割り当て」を選択する。
- ネットワークドライブを割り当てる
-
ネットワークドライブの割り当てダイアログが表示されるので、割り当て先のドライブとフォルダーを指定する。
上記で用意したフォルダへのパスを「フォルダー」欄に指定し、「完了」を押そう。
この状態でエクスプローラーから割り当てたドライブを開くと、長すぎるパスのフォルダを開くことができる。
元のフォルダは長すぎてフォルダやファイルを作成できる状態ではないのだが、ネットワークドライブとして利用することで新たにフォルダやファイルを作成できるようになった。
作成したネットワークドライブは、右クリックメニューの「切断」を選択することで削除できる。
不要になったら切断しよう。
シンボリックリンクを利用する
フォルダに対してシンボリックリンクを作成することで、長すぎるパスであっても操作できるようになる。Windows でシンボリックリンクを作成するには mklink コマンドを利用する。
コマンドの書式は以下の通り
mklink /d リンク名 対象のフォルダ
例えば対象のフォルダパスが "D:\TOO\LONG\PATH\NAME" で D 直下に "NAME" という名前でリンクを作成する場合は以下のようになる。
mklink /d D:\NAME D:\TOO\LONG\PATH\NAME
これを実行しよう。
- コマンドプロンプトを管理者権限で開く
-
mklink コマンドはコマンドプロンプトで利用できる。スタートメニューからコマンドプロンプトを管理者権限で開こう。
- mklink コマンドを実行する
-
mklink コマンドを実行する。
そうするとショートカットアイコンのようなマークがついたフォルダが作成される。
開くとリンク先のフォルダを短いパスで扱うことができる。
パスの長さ上限を解除する
Windows のグループポリシーの設定を変更することで、パスの長さの上限を大幅に拡大することができる。
- グループポリシーエディターを起動する
-
スタートメニューなどで gpedit と入力し、グループポリシーエディタを起動しよう。
- Win32 の長いパスを有効にするを開く
-
左側のツリービューより「コンピュータの構成」->「管理用テンプレート」->「システム」->「ファイルシステム」を開くと、「Win32 の長いパスを有効にする」という項目がある。
これをダブルクリックもしくは右クリックして「編集」を選択し、設定画面を開こう。
- 有効にする
-
設定画面が開くので、「有効」を選択して「適用」「OK」をクリックして閉じ、PC を再起動する。
これで長いファイル名であってもエクスプローラーから扱えるようになる。