[Python-Dev] casefolding in pathlib (PEP 428)
Ralf Schmitt
ralf at systemexit.de
Fri Apr 12 19:42:25 CEST 2013
Guido van Rossum <guido at python.org> writes:
> Actually, I've heard of code that dynamically falls back on short
> names when paths using long names exceed the system limit for path
> length (either 256 or 1024 IIRC). But short names pretty much require
> consulting the filesystem, so we can probably ignore them.
The limit is 260 characters. But longer paths can be handled by
prepending \\?\ and using the unicode APIs.
see http://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath
we have the following code to handle the above insanity:
,----
| def prepend_magic_win32(path):
| assert isinstance(path, unicode), "path must be of type unicode"
|
| if path.startswith(u"\\\\"):
| if path.startswith(u"\\\\?\\"):
| return path
| else:
| return u"\\\\?\\UNC\\" + path[2:]
| else:
| return u"\\\\?\\" + path
`----
--
Cheers
Ralf
More information about the Python-Dev
mailing list