First off, the path name length limitation is only in all the tools Microsoft
provides to access NTFS; it is not a limitation of NTFS itself. Many third-party
tools do support long paths. Using an archiver like WinRAR is probably the best
way to copy data that contains long paths.

However, assuming you've ended up here because you've already invested many hours
getting a partial copy, only to have a bunch of files omitted because of their
path length, you can complete the copy using the procedure below.


generated complete list of path names via:

set cmd.exe window scrollback buffer to 9000 lines
on source drive, did:
did dir /s /b /a > full_inventory_of_from_other_3_TB.txt

This produced a number of "path too long" errors on cmd window stdout/stderr.

After the dir command was finished, verified that the list of too-long-path
errors did not exceed the scrollback buffer.

Then, copied complete text of path-too-long errors to
"too long path errors.txt"

Then, grepped for lines longer than 220 chars (254 chars, minus the length of
the destination prefix) in full_inventory_of_from_other_3_TB.txt, with this
grep command line:

grep ".\{220\}" full_inventory_of_from_other_3_TB.txt > long_lines.txt

Then, long_lines.txt was trimmed using these regexps in vim:

:%s/\(^.\{180\}\).*$/\1/  (cut all lines to 180 chars)
%s/\\[^\\]*$/\\/          (trim to last available backslash)

Then, sort long_lines.txt unique, which should shorten it considerably.

Then, remove all the ones that are known to be unimportant (e.g. Temporary
Internet Files)

Finally, convert the resulting list into a batch file that moves the deep
paths up to a short-named folder in the root directory, called 'longpaths'.

Finally, recheck the drive again, using the dir /s /b /a command and grep again.