Issue 2035: Fix the caching on Windows - issue with filenames greater than 256 chars
This commit is contained in:
@@ -282,6 +282,17 @@ class CacheOnDisk(CacheAbstract):
|
|||||||
]
|
]
|
||||||
|
|
||||||
def replace_windows(src, dst):
|
def replace_windows(src, dst):
|
||||||
|
"""
|
||||||
|
The Windows filesystem has a 256 character limit for the filename.
|
||||||
|
To use filenames longer than that, the '\\?\' prefix needs to be used.
|
||||||
|
By default, this prefix is added to all windows filenames,
|
||||||
|
when accessing it.
|
||||||
|
View this for details: http://stackoverflow.com/a/23230380/348142
|
||||||
|
"""
|
||||||
|
windows_prefix = "\\\\?\\"
|
||||||
|
dst = windows_prefix + dst
|
||||||
|
src = windows_prefix + src
|
||||||
|
|
||||||
if not ReplaceFile(dst, src, None, 0, 0, 0):
|
if not ReplaceFile(dst, src, None, 0, 0, 0):
|
||||||
os.rename(src, dst)
|
os.rename(src, dst)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user