chevah / compat

Chevah OS Compatibility Layer
Other
4 stars 1 forks source link

Add support for long file names #685

Closed adiroiban closed 1 year ago

adiroiban commented 1 year ago

We need to enable the tests on long paths

and all file operations on windows should add the \\?\ to the path .

For local shares, we might need to add \\?\UNC\

>>> pa[4:]
u'C:\\Users\\chevah\\Downloads\\very-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very\\very-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very'
>>> os.listdir(pa[4:])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
WindowsError: [Error 3] The system cannot find the path specified: u'C:\\Users\\chevah\\Downloads\\very-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very\\very-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very\\*.*'
>>> os.listdir(pa)
[u'New Text Document.txt']
>>> pa
u'\\\\?\\C:\\Users\\chevah\\Downloads\\very-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very\\very-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very-very-longvery-long-name-bug-very'