【问题标题】:Create directory with path longer than 260 characters in Python在 Python 中创建路径长度超过 260 个字符的目录
【发布时间】:2019-04-11 20:28:03
【问题描述】:

这是与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'

【问题讨论】:

  • Windows 路径最多可包含 32767 个字符,受限于 NT 的 UNICODE_STRING 计数字符串类型,为最终解析的路径提供或取一些字符(例如“C:”​​->“\Device \HarddiskVolume2")。但是文件名和目录名的长度受文件系统的限制。几乎所有受支持的文件系统都将其限制为 255 个字符。见File System Functionality Comparison

标签: python-3.x windows filesystems


【解决方案1】:

感谢 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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多