Hi TerryMz,
This is a surprisingly interesting piece of Windows history, and it explains why the
260‑character path limit still appears today even though modern Windows can technically handle much longer paths.
The origin: MS‑DOS design (1980s)
Windows inherited many design decisions from
MS‑DOS, which was created in the early 1980s when:
- computers had very little memory
- file systems were simple
- long directory structures were uncommon
In DOS, the
maximum path length was defined as 260 characters. Internally it was stored in a buffer called
MAX_PATH.
That buffer contained:
- 256 characters for the path
- plus extra characters for things like the drive letter (
C:) and terminating characters.
So the Windows programming constant became:
MAX_PATH = 260
This limit was built directly into many early Windows programming interfaces.
Windows NT actually removed the limit (1993)
When Microsoft created
Windows NT (the architecture used by Windows 2000, XP, Vista, 7, 10, and 11), they designed a much more advanced file system layer.
Internally, NTFS can support paths up to roughly:
32,767 characters
So technically Windows has supported extremely long paths for over
30 years.
But there was a catch.
The compatibility problem
Millions of Windows programs written since the early 1990s assumed that:
MAX_PATH = 260
Developers hard‑coded that assumption into software.
If Microsoft suddenly removed the limit completely, many older applications would:
- crash
- corrupt memory
- mis-handle file paths
So Microsoft kept the
260‑character restriction in the common Win32 APIs, even though the underlying NT kernel could handle much longer paths.
The “long path” workaround
NT actually supports long paths using a special syntax:
\\?\C:\VeryLongPath\...
The
\\?\ prefix tells Windows:
“Bypass the old MAX_PATH Win32 checks and pass the path directly to the NT kernel.”
System tools like
robocopy, backup software, and some developer tools use this internally.
That’s why robocopy worked for you even when File Explorer failed.
What Microsoft did in modern Windows
Starting with
Windows 10 (2016) Microsoft added the policy you enabled:
Enable Win32 long paths
This allows modern applications to bypass the 260‑character restriction.
However:
- many older programs still assume MAX_PATH
- parts of File Explorer still use legacy APIs
- some installers and utilities still enforce the old limit
So the limit still appears in certain situations.
Why the issue shows up during file transfers
When copying files between drives, the problem is usually not the
filename, but the
entire path, for example:
C:\Users\YourName\Documents\Old Computer Backup\Projects\2004\Archived Reports\Final Versions\Very Long File Name.doc
If the total path exceeds about
260 characters, Explorer may refuse the copy operation.
Tools like
robocopy succeed because they use lower‑level NT APIs that support long paths.
Why Windows XP sometimes seemed better
Windows XP actually had the
same underlying limit, but users often didn’t notice it because:
- XP profiles were shorter (e.g.,
C:\Documents and Settings\)
- folder structures were simpler
- cloud syncing folders didn’t exist
- applications used shorter naming conventions
Modern Windows paths like:
C:\Users\username\OneDrive\Documents\Projects\...
can grow very long very quickly.
The irony
The funny part is that the real technical limit today is about:
32,767 characters
…but because of decades of software compatibility, many parts of Windows still behave as if the limit were
260.
That small design decision from the
DOS era (over 40 years ago) is still affecting Windows users today.
If you're interested, there’s another similar historical artifact in Windows that dates all the way back to
1960s teletypes, and it’s the reason Windows still uses the mysterious characters:
CR + LF
at the end of every line in text files. It’s another case where a very old design decision still affects modern computers.