|
发表于 2023-3-2 11:53:02
|
显示全部楼层
本楼为最佳答案
Windows 文件系统 NTFS 的文件名和目录路径有最大长度,即 MAX_PATH 限制最长 260 个字符
在 Windows 上,你可以尝试以下几种方法来解决这个问题:
1、使用相对路径:如果可能的话,尽量使用相对路径来引用文件。相对路径相对于当前工作目录或脚本文件所在目录。
2、使用短路径名:你可以使用 Python 中的 ctypes 模块来获取文件的短路径名。例如:
- import ctypes
- def short_path_name(long_name):
- """
- 获取文件的短路径名
- """
- buf = ctypes.create_unicode_buffer(1024)
- ctypes.windll.kernel32.GetShortPathNameW(long_name, buf, len(buf))
- return buf.value
复制代码
然后可以像这样使用:
- src = short_path_name(src)
- dst = short_path_name(dst)
复制代码
3、使用 UNC 路径:UNC 路径的格式为 \\server\share\path\file,
它们不受文件路径长度限制的影响。如果你可以访问远程计算机或网络共享,可以使用 UNC 路径。
例如,如果你要备份的文件位于 E:\path\to\file.docx,你可以将其转换为 \\localhost\E$\path\to\file.docx。
- src = r'\\localhost\E$\path\to\file.docx'
- dst = r'\\localhost\E$\backup\file.docx'
复制代码
4、你可以尝试使用本地组策略编辑器来启用长路径支持。
找到并打开文件(本地组策略编辑器)gpedit.msc,然后依次点开 计算机配置 > 管理模板 > 系统 > 文件系统,
找到“启用 Win32 长路径”,将其状态更改为“已启用” |
|