NTFS文件系统(Windows XP和Windows Vista)中的最大文件名长度是多少?

286

我正在设计一个数据库表,用于保存上传文件的文件名。在 Windows XP 或 Vista 中使用的 NTFS 文件系统中,文件名的最大长度是多少?


92
我从来没有见过这么多不同的答案,对于一个本应简单的问题。199、255、256、257、260、约30,000、大约32,000、以及“取决于情况”。当然,这些都有条件限制,但它们能够全都是正确的吗? - MickeyfAgain_BeforeExitOfSO
7
我知道它的值是255,因为我不得不开发一个应用程序来阻止企业用户访问它,因为这会导致我们的存储服务器出现问题。 - RobertPitt
3
@RobertPitt。你在那里缺少了一些东西。引用MSDN的话:“路径的最大长度为MAX_PATH,定义为260个字符”。 - Michael Olesen
7
@Michael9000。我相信RobertPitt是在引用文件名长度限制(这也是这个问题的讨论点),而不是路径限制。 - gdw2
9
NTFS并不受MAX_PATH限制,Windows Shell受到限制,NTFS最大路径长度为32k。 - paulm
显示剩余4条评论
15个回答

1

文件路径最多可以包含255个字符,但完整路径也不应该超过这个长度。维基百科上有一张很好的表格,关于这个问题:http://en.wikipedia.org/wiki/Filename


0

在 Windows 11 中(在 NTFS 驱动器中),文件名长度为 236,包括扩展名。

为了测试,请将文件重命名为以下名称,并尝试添加一个字符:

1234567890123456789010123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.txt


-3

实际上是256,参见文件系统功能比较,限制

重复一篇关于http://fixunix.com/microsoft-windows/30758-windows-xp-file-name-length-limit.html的帖子

"假设我们谈论的是NTFS而不是FAT32,"路径+文件"的255个字符是资源管理器的限制,而不是文件系统本身的限制。NTFS支持长达32,000个Unicode字符的路径,每个组件最多255个字符。

资源管理器和Windows API将路径限制为260个字符,其中包括驱动器号、冒号、分隔斜杠和终止空字符。如果您以\\开头,则可以在Windows中读取更长的路径"

如果您阅读以上帖子,您会发现第五件事情:找到至少一个固执的计算机用户!


4
不是-它是255。NTFS $Filename属性中的NameLength字段是一个没有偏移量的字节,这将产生0-255的范围。 - Dominik Weber
“每个组件最多可达255个字符” - 就像您自己写的那样。 - CherryDT

-3

238! 我使用以下批处理脚本在Win7 32位下进行了检查:

set "fname="
for /l %%i in (1, 1, 27) do @call :setname
@echo %fname%
for /l %%i in (1, 1, 100) do @call :check
goto :EOF
:setname
set "fname=%fname%_123456789"
goto :EOF
:check
set "fname=%fname:~0,-1%"
@echo xx>%fname%
if not exist %fname% goto :eof
dir /b
pause
goto :EOF

我在Windows 7下使用了一个能够正确处理长路径的程序进行了检查。每个单独的路径段可以达到255个字符(我使用了w)。那么现在怎么办? - 0xC0000022L
不,你(无意中)检查的是260(不带空终止符的259)的MAX_PATH限制。请再次尝试,将C:\作为您的当前目录。 - CherryDT

-3

在WS 2012 Explorer中,我无法创建名称+句点+扩展名超过224个字符的文件。不要把怒火撒在信使身上!

在同一台服务器的CMD中,我无法创建长度超过235个字符的名称:

系统找不到指定的路径。

在Explorer中创建的具有224个字符名称的文件无法在Notepad++中打开-它只会出现一个新文件。


“系统找不到指定的路径。”与“指定的路径、文件名或两者都太长。”不是同一个错误。我猜你可能打错了什么字。如果你试图在不存在的路径中创建文件,或者想要移动到不存在的方向,你会收到这个消息。 - Matthias Burger

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