Windows 可以处理的最长文件路径是多少?
答案1
最大路径长度(摘自 MSDN)
在 Windows API 中(以下段落中讨论了某些例外情况),路径的最大长度为MAX_PATH 定义为 260 个字符。本地路径的结构如下:驱动器号、冒号、反斜杠、以反斜杠分隔的部分以及终止空字符。例如,驱动器 D 上的最大路径为“D:\<某个 256 个字符的路径字符串><NUL>”,其中“<NUL>”表示当前系统代码页的不可见终止空字符。(此处使用字符 < > 是为了视觉清晰,不能作为有效路径字符串的一部分。)
答案2
XP 文件路径 - 250 个字符
Vista 文件路径 - 260 个字符
Windows XP 全新安装的最长路径为 152 个字符。
Windows Vista 半全新安装的最长路径为 195 个字符
Windows XP 允许文件名长度最多为 255 个字符
Windows Vista 允许更长的文件名,最多可包含 260 个字符。
答案3
这“经典的”极限是260字符:+++ drive letter
(或用于舍入)+如其他答案所述:\
255 characters of filename
\
null terminator
然而真正的内部限制是32767可以通过添加前缀\\?\
来获得完全限定路径
Windows API 中有许多函数也有 Unicode 版本,允许扩展长度的路径,最大路径总长度为 32,767 个字符。这种类型的路径由用反斜杠分隔的部分组成,每个部分的长度不超过
lpMaximumComponentLength
函数参数中返回的值GetVolumeInformation
(该值通常为 255 个字符)。要指定扩展长度的路径,请使用前缀"\\?\"
。例如,"\\?\D:\very long path"
。
如果由于某些原因无法使用完整路径,则可以通过以下方式安装到驱动器号来访问更深的目录:subst
/diskpart
或者创建一个交界处/符号链接缩短路径
自 Windows 10 版本 1607 以来,这一MAX_PATH
限制也已被取消,尽管默认情况下并非如此
从 Windows 10 版本 1607 开始,
MAX_PATH
已取消对常见 Win32 文件和目录功能的限制。但是,你必须选择采用新行为。https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file
注意乔的回答完全是错误的. 最大(长)文件名长度始终为 255 个字符,并且MAX_PATH
始终为 260