Windowsで「パスが長すぎます」と表示されて、削除も展開もできずに詰んだことはないでしょうか。PC黎明期はよくあったことです。260文字制限と呼んでいました。
私自身、NASバックアップや取引先から受け取ったZIPファイルでこの問題に直面し、「削除できない・展開できない・移動もできない」という完全な行き止まりを経験しました。
とくに社内で命名規則を統一していない場合は、いまだに起こることがあります。
- フォルダ階層が深すぎるため260文字制限発生
- 修正版ファイルによる260文字制限発生
- ZIPの多重構造
こういった理由で自然に260文字をオーバーしてしまい、MAX_PATH制限を超えてしまいます。
この記事では次のことについて解決します。
- 「パスが長すぎます」で削除できない問題
- ZIPが展開できない問題
- MAX_PATHの回避方法
- なぜこの問題が発生するのか
結論:今すぐ解決したい人へ
・削除できない場合 → NTパスで削除
Remove-Item -LiteralPath "\\?\フルパス" -Recurse -Force
・パスが長すぎる場合 → SUBSTで短縮
subst X: "長いパス"
・ZIPが展開できない場合 → PowerShellで展開
Expand-Archive -Path "LongNameFile.zip" -DestinationPath "C:\temp"
・コピー不可 → robocopy
robocopy "コピー元" "コピー先" /E
この3つの方法でほとんどのケースが解決すると思います。
実体験:7-ZIPで展開できないZIPに詰んだ話
取引先から送られてきたZIPファイルが送られてきました。今時ZIPをメールで送るとは、と思いながら仮想環境で中身を見ようとしたときのことです。
- 7-Zip → 展開エラー
- エクスプローラー → パスが長すぎます
- コピー → 途中で失敗
MAX_PATHかな?と思いましたが、Windows 10になってからLong Pathが有効になったはずなので、おかしいなと感じました。
とても厄介なことに、先方へ連絡しても圧縮はできているのだから展開だってできる、の一点張りで同じファイルを送ってくるだけでした。
ZIPを展開できない、これは7-ZipがレガシーAPI(Win32)を使うツールだから起こった問題です。
7-Zipだけではありません。同じようなことは古くからあるアプリケーションではよく起こります。
7-ZIPで展開できない理由(レガシーAPI問題)
7-ZIPなど一部ツールは、内部でWin32 APIを使用しています。
このAPIには260文字制限(MAX_PATH)があるため、260文字をオーバーすると展開できない問題が発生します。
- 圧縮時は通る場合がある
- 展開時は制限に引っかかる
このような不具合があります。厄介なことは圧縮ができてしまうことです。
知らずに圧縮して、元ファイルを消してしまった場合、結構慌てることになります。
つまり、ツールの設計が古いことが原因で起こる問題です。
なぜMAX_PATH問題が発生するのか
Windowsには古くからMAX_PATHと呼ばれるパス長制限があります。
具体的には260文字以上になると不具合を起こします。
システム側の問題
長年続いていたMAX_PATH問題はWindows 10のときにLong Pathに対応したことで解消されました。そのためOSでは30,000文字以上に対応しています。
| 項目 | 文字数 |
|---|---|
| Windows MAX_PATH | 260文字 |
| NTFS理論最大 | 約32,767文字 |
Windows内部では長いパスを扱うことができますが、いまだ多くのアプリケーションで古いAPIを使っているため260文字の制限を受けることとなっています。
- NTFSファイルシステム自体は260文字以上を扱える
- しかし古いWindows APIには260文字制限がある
- Explorerはこの制限の影響を受ける
OSは対応しているけれど、APIが足を引っ張っている状態です。
人側の原因(ファイル名の長さやフォルダ構造)
命名規則をきちんと作っておらず、個人のPCに保存されていたと思われるものによく見られます。
- フォルダの階層がとても深い
- 修正版ファイル名や差分名の増殖
- NASの多重バックアップ
皆さんもこのようなファイル名を見たことがあるのではないでしょうか。
・2026年度営業部売上管理資料最新版ver1.02.27-final2.xlsx
人の命名方法にケチをつけるつもりはありませんが、このようなファイル名に出会うと「なんとかならなかったのかな」と思ってしまいます。
ファイルを作る人間側が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文字を大きく超えるパスを生成することに成功しました。

このスクリプトはこのような動作を行います。
- Eドライブにlabフォルダを作成
- deep0, deep1のようにフォルダを連続生成
- 最終的に260文字以上のパスを作る。
以前のWindowsではExplorerから削除しようとすると、次のエラーが表示されていました。
「パスが長すぎます」
しかし今のWindows 11ではExplorerで簡単に消すことができます。これはWindows 10以降でLong Path対応が導入されたためです。
ではLong Pathに対応したWindows 11でMAX_PATH問題を再現してみます。
Windows 11で260文字エラーを再現する
Long Path導入とはいえ、次のような状況では問題が発生する場合があります。会社のPCでサービス終了した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)
- QWindows 11でも「パスが長すぎます」は発生しますか?
- A
Windows10以降ではLong Path対応が導入されていますが、古いZIPツールやNAS、古いアプリでは発生する場合があります。
- Q260文字フォルダは完全に削除できますか?
- 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/


コメント