On 6/25/2015 5:16 AM, Steven D'Aprano wrote:
On Thursday 25 June 2015 18:00, Albert-Jan Roskam wrote:
Hi,
Consider the following calls, where very_long_path is more than 256 bytes:
[1] os.mkdir(very_long_path)
[2] os.getsize(very_long_path)
[3] shutil.rmtree(very_long_path)
I am using Python 2.7 and [1] and [2] fail under Windows XP [3] fails
under Win7 (not sure about XP). It throws: “WindowsError: [Error 206] The
filename or extension is too long”
I don't think this is a bug. It seems to be a limitation of Windows.
https://msdn.microsoft.com/en-
us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#maxpath
This is even when I use the "special"
notations \\?\c:\dir\file or \\?\UNC\server\share\file, e.g.
os.path.getsize("\\\\?\\" + "c:\\dir\\file")
However, that may be a bug.
What happens if you use a Unicode string?
path = u"\\\\?\\c:a\\very\\long\\path"
os.mkdir(path)
Can you open an existing file?
open(u"\\\\?\\c:a\\very\\long\\path\\file.txt")
(Oddly, os.path.getsize(os.path.join("\\\\?", "c:\\dir\\file")) will
truncate the prefix)
That's worth reporting as a bug.
If possible, please try the same operations with Python 3.4 or .5 before
making a report
--
Terry Jan Reedy
--
https://mail.python.org/mailman/listinfo/python-list