Windows「パスが長すぎます」エラーの原因と対処法、260文字制限(MAX_PATH)を解説

Windowsで次のエラーが表示されて困ったことはありませんか?

「パスが長すぎます」
「ファイル名または拡張子が長すぎます」

このエラーが出るととても困ったことになります。

  • フォルダが削除できない
  • ZIPが展開できない
  • コピーや移動ができない

このような問題が発生します。

これはWindowsに長年存在する「260文字制限(MAX_PATH)」が原因です。

この記事では次のことについてあつかいます。

  • MAX_PATHの仕組み
  • PowerShellでの再現方法
  • 削除できないフォルダの対処法
  • ファイル救出方法

これらについて様々な角度から実例付きで解説します。

Windowsの260文字制限(MAX_PATH)とは

Windowsには MAX_PATH と呼ばれるパス長制限があります。

項目文字数
Windows MAX_PATH260文字
NTFS理論最大約32,767文字

つまり、Windows内部では長いパスを扱うことができますが、多くのアプリケーションでは260文字制限のAPIを使用していました。

  • NTFSファイルシステム自体は260文字以上を扱える
  • しかし古いWindows APIには260文字制限がある
  • Explorerはこの制限の影響を受ける

そのため「フォルダは存在するのにExplorerでは操作できない」という状況が発生します。

実際にPowerShellで260文字パスを作る検証

実際に260文字を超えるフォルダ構造を作ります。

$path="E:\lab"
mkdir $path

for ($i=0; $i -lt 70; $i++) {
    $path="$path\deep$i"
    mkdir $path
}

ni "$path\test.txt"

$path.Length

今回のこの検証では、260文字を大きく超えるパスを生成することに成功しました。

486文字のパス。deep69階層のtxtファイルです。69階層...ぞっとします。

このスクリプトはこのような動作を行います。

  1. Eドライブにlabフォルダを作成
  2. deep0, deep1のようにフォルダを連続生成
  3. 最終的に260文字以上のパスを作る。

以前のWindowsではExplorerから削除しようとすると、次のエラーが表示されるはずです。

「パスが長すぎます」

しかし今のWindows 11ではExplorerで簡単に消すことができます。これはWindows 10以降でLong Path対応が導入されたためです。

Windows 11で260文字エラーを再現する方法

Long Path導入とはいえ次のような状況で発生する場合があります。特にサービス終了したWindows 10はおろか8.1や8、ひどいと7を支給された場合です。

NAS共有フォルダ

例えばネットワークドライブでは次のように見えていると思います。

(表示例)Z:\backup\project\data.txt

(実際のパス)\NAS-SERVER\share\backup\project\data.txt

ここにおそらくこういったフォルダも追加されていくでしょう。

  • 顧客名
  • プロジェクト名
  • 日付
  • バージョン

ここまでくると知らず知らずの間にあっというまに260文字を超えてしまいます。

NAS共有フォルダはネットワークパス(UNCパス)になるためパスが長くなりやすく、260文字制限に到達しやすい環境です。

ZIP展開

ZIP展開ツールによっては、とくに古いZIPツールでは「The filename or extension is too long」とエラー表示される場合があります。

今回の検証ではWindows 11 + 7-Zipでも再現できました。

Long Pathが導入されているはずのWindows 11でもなぜそうなるのか、その理由は2つあります。

  • ZIP内部パスが想定よりも長い
  • 展開処理に古いAPIが使われている可能性

そのため展開ができなかったのだと思います。

古いバックアップソフト

個人が作成したようなバックアップツールも、260文字制限の影響を受ける場合があります。意外な盲点として知られています。

「パスが長すぎる」エラーの解決方法

古いOSならばわかりますが、今回の検証ではWindows 11でもZIP展開時にエラーが発生しました。

Windowsが対応していてもソフトウェア側が制約を受けてしまう。こうなってしまうと、結構根が深い問題です。

方法① ZIPを短い場所に移動

最も簡単な方法ですが、短い場所に移動して少しでもパスを短くする方法です。

E:\temp

これだけで済めば良いことです。

方法② 7-Zipを使う

Explorerより長いパスに強い場合があります。

右クリック → 7-Zip → ここに展開

方法③ PowerShellで展開

ここまでで対応できない場合は取れる手段は限られてきます。PowerShellなら展開できる場合があります。

Expand-Archive -Path E:\lab\sample.zip -DestinationPath E:\lab\temp

これでE:\lab\tempフォルダに展開されます。

方法④ 仮想ドライブ(SUBST)

文字数を大幅に削ることができるため、有効な手段です。

E:\lab\project\documents\data\images\sample

そこで次のコマンドで仮想ドライブ化します。

SUBST X: E:\lab\project

そうすると表示がこのように変わり、Xというドライブができます。

X:\documents\data\images\sample

40から80文字ほど削減することができます。解除したい場合は次のコマンドを打ってください。

SUBST X: /D

仮想ドライブ(SUBST)を使用すると、長いフォルダパスを短いドライブレターに置き換えることができます。
これによりパス全体の文字数が短くなり、260文字制限によるエラーを回避できる場合があります。

削除できない260文字フォルダを削除する方法

260文字を超えるフォルダはExplorerで削除できないことがままあります。その場合はPowerShellで消してしまいましょう。

PowerShellで削除

ただしPowerShellのRemove-Itemはゴミ箱を経由せずに削除します。よって誤って削除した場合、復元が難しくなるため注意してください。

Remove-Item -LiteralPath "E:\lab\deep0\deep1" -Recurse -Force

問答無用で消されてしまうため、次のスクリプトを使う方が安全かもしれません。

PowerShellでごみ箱に送って削除

しかし、このブログでは安全第一を考えているため、こちらの方法をお勧めします。Microsoft.VisualBasic.FileIO.FileSystemを使うことで、Explorerと同じようにごみ箱へ送る削除が可能になります。

Add-Type -AssemblyName Microsoft.VisualBasic

[Microsoft.VisualBasic.FileIO.FileSystem]::DeleteDirectory(
"E:\lab\deep0",
'OnlyErrorDialogs',
'SendToRecycleBin'
)
  • .NETのVisualBasicライブラリを使用
  • Explorerと同じ削除動作

これらを実現することができます。

削除前にファイルだけ救出する方法

260文字を超えるフォルダは、削除してしまうと中のファイルを取り出すことが難しくなります。
そのため削除する前にファイルを救出することが重要です。

ここでは簡単なものから大胆な方法まで実体験として使える3つの方法を紹介します。

方法難易度特徴
robocopy大量コピーに強い
NTパスWindows制限を直接回避
仮想ドライブ(SUBST)パスを短くしてアクセス

方法① robocopyでファイルを救出する

まず試すべき方法はrobocopyです。

robocopy "E:\lab" "E:\lab_backup" /E

robocopyで解決する問題は結構あり、長いパスに強い、大量ファイルのコピーに強い、エラーが起きても処理が止まりにくいといった特徴があります。

そのため、Explorerではコピーできないもの、コピーしてもフォルダが途中で止まるものといった問題を回避できる場合があります。

robocopyが向いているケースは次の通りです。

  • フォルダ全体を救出したい
  • ファイル数が多い
  • NASコピー

方法② NTパス(\?\)でコピーする

WindowsにはNTパス形式という内部パスがあります。

通常のパスの形式だと、例えば今回はこのようなパスだとします。

E:\lab\deep0\deep1\file.txt

これがNTパスだとこのように見えています。

\\?\E:\lab\deep0\deep1\file.txt

このNTパスはPowerShellでも使えるため次のように使えます。

Copy-Item "\\?\E:\lab\deep0\file.txt" E:\lab_backup

robocopyで済めば問題ないのですが、NTパスを使う必要もあるかもしれません。なぜならNTパスはWindows APIの260文字制限やExplorerの制限を直接回避できます。

つまり、Windows内部のパス形式で直接アクセスする方法です。robocopyとの違いは次の3点に挙げられると思います。

  • robocopyはフォルダコピー、NTパスは単一ファイルの救出
  • robocopyは簡単、NTパスは慣れが必要でとっつきにくい
  • 260文字回避はrobocopyはある程度まで、NTパスは完全回避

方法③ 仮想ドライブ(SUBST)でパスを短くする

260文字問題の原因の多くはパスの長さそのものです。そこでフォルダにします。

SUBST X: E:\lab

このようで仮想ドライブ(SUBST)にするとこうなります。

E:\lab\deep0\deep1\deep2\file.txt

この部分が短縮されて次のようなパスに変わります。

X:\deep0\deep1\deep2\file.txt

この場合は少ししか変わりませんが、NASだと大幅に文字数を削減することができます。これで260文字以下になれば解決できます。

いくつか挙げましたが、順番として試すのならば次の順だと効率的だと思います。それぞれのアプローチの仕方は違うため、状況によって使い分けてください。

  • robocopyはコピーエンジンを変える
  • NTパスはWindows内部パスを使う
  • 仮想ドライブはパス自体を短縮する

260文字問題の対処まとめ表。

方法難易度できること
robocopyフォルダ丸ごと救出
NTパス長いパスを直接操作
SUBSTパスを短縮
PowerShell削除削除不可フォルダ削除

Windows10以降のLong Path対応

Windows10からLong Path機能が導入されました。

  • Explorer
  • PowerShell

これらでは260文字制限が起きにくくなっています。

それでもWindows11でエラーが出る理由

Windows 10から対策はされていますが次の環境では問題が残ります。

  • 古いZIPツール
  • 古いNAS
  • 古い手作りソフトウェア

これらでエラーが起こる原因は一つです。システムが混在すると問題が残るということです。

小規模・中規模職場の予防策

大企業などではすでに対策されており、何も問題はないと思います。しかし、つい最近までJRが券売機や清算機、指令システムや業務用端末そしてメンテナンス用PCにWindows XPが使われていたことは有名です。もう切り替わっているので安心です。

レガシーシステムは身近に潜んでいるのです。そして問題を解決できるのは人の手だけです。

フォルダ階層を5階層以内

階層を整理して浅くすること。パスの長さは次の要素で増えていきます。

  • ドライブ名
  • フォルダ名
  • サブフォルダ
  • ファイル名

そのため階層が深くなるほど260文字制限に到達しやすくなります。

企業やチームで共有フォルダを扱う場合は、5~6階層以内に抑えるルールを作るとトラブルを未然に防ぐことができます。

ファイル名を短くする

結局パスの長さはフォルダやファイルの名前の長さに比例します。

2026年度営業部売上管理資料最新版.xlsx

このような長いファイルを短縮してみるといいかもしれません。

2026sales.xlsx

共有フォルダ構造を標準化

チームや部署ごとに独自構造を作らないことは当たり前にしておきたいです。

よくある質問(FAQ)

Q
Windows 11でも「パスが長すぎます」は発生しますか?
A

Windows10以降ではLong Path対応が導入されていますが、古いZIPツールやNAS、古いアプリでは発生する場合があります。

Q
260文字フォルダは完全に削除できますか?
A

PowerShellやNTパスを使えば削除できます。

Q
削除したファイルは復元できますか?
A

Remove-Itemはごみ箱を経由しないため、復元が難しい場合があります。

まとめ

Windowsの260文字制限(MAX_PATH)は現在では発生頻度は減りました。しかし全くないというわけでもありません。

  • ZIP展開
  • NAS共有
  • レガシーシステムを使っている

このような環境では今でも発生します。しかしExplorerで操作できない場合でも解決策はあります。

  • PowerShell
  • robocopy
  • NTパス
  • 仮想ドライブ

これらを駆使してMAX_PATHと戦ってください。そして相手様にZIPを送る際は絶対に260文字もあるような酷な構造のものを送らないようお願いします。

リファレンス

Microsoft公式ドキュメント
PowerShell:https://learn.microsoft.com/powershell/

Expand-Archive:https://learn.microsoft.com/powershell/module/microsoft.powershell.archive/expand-archive

robocopy:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/robocopy

SUBST:https://learn.microsoft.com/windows-server/administration/windows-commands/subst

MAX_PATH:https://learn.microsoft.com/windows/win32/fileio/maximum-file-path-limitation

7-Zip:https://www.7-zip.org/

コメント