用Python创建超过260个字符的路径目录

3
这与这个问题非常相似:this one,只不过是针对Python而不是powershell。它也在herehere进行了讨论,但没有发布可行的解决方案。

所以,有没有办法在Python中创建一个目录,绕过Windows上的260字符限制呢?我尝试了多种方法,在前面添加\\?\,但无法使其工作。

特别是以下最明显的代码:

path = f'\\\\?\\C:\\{"a"*300}.txt'
open(path, 'w')

出现错误无法完成

OSError: [Errno 22] Invalid argument: '\\\\?\\C:\\aaaaa<...>aaaa.txt'

3
Windows路径可以长达32767个字符,根据NT的UNICODE_STRING计算字符串类型的限制,最终解析的路径可能会有一些字符留给最后确定的路径(例如“C:”->“\ Device \ HarddiskVolume2”)。但是,文件和目录名称的长度受到文件系统的限制。几乎所有支持的文件系统都将其限制为255个字符。请参阅文件系统功能比较 - Eryk Sun
1个回答

3

感谢eryksun的帮助,我意识到我试图创建一个名称过长的文件。经过一些实验,以下是如何在Windows上创建超过260个字符的路径(前提是文件系统允许):

from pathlib import Path

folder = Path('//?/c:/') / ('a'*100) / ('b'*100)
file = folder / ('c' * 100)

folder.mkdir(parents=True, exist_ok=True)
file.open('w')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接