pythonwin32文件名长度解决方法

我发现当文件path长度大于255个字符时,即使文件名本身是10个字符(其余部分是目录path),也不能open(filepath) )。

任何想法解决这个问题? (在Win32上的python 2.6)

最通用的方法是用\\\\?\\ ( 引用 )前缀路径。 请注意,这会禁用路径上的某些预处理,但没有任何主要的IMO。

另外我可以注意到,在Python 2.7的32位Windows server 2003上,我必须使用前缀Unicode路径( u"\\\\\\\\?\\\\"前缀或你的ur"\\\\?\\" )(因为在引用中提到 ),即使使用前缀,非Unicode API函数仍可能被限制为MAX_PATH长度。

例如,你的ur"\\\\?\\c:\temp\....\abc.txt"

Windows操作系统级别的解决方案是使用DOS SUBST命令在特定目录中定义伪驱动器。

 SUBST Q: C:\really\long\path\name\full\of\sub\directories 

然后你可以访问该目录中的文件作为Q:filename