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

windows-vista windows-xp ntfs filenames name-length

418054 观看

14回复

35001 作者的声誉

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

作者: GateKiller 的来源 发布者: 2008 年 11 月 5 日

回应 14


7

18519 作者的声誉

255个字符。

http://en.wikipedia.org/wiki/Filename

作者: warren 发布者: 2008 年 11 月 5 日

258

309802 作者的声誉

决定

文件名的各个组件(即沿路径的每个子目录和最终文件名)限制为255个字符,总路径长度限制为大约32,000个字符。

但是,在Windows上,您不能超过MAX_PATH值(文件为259个字符,文件夹为248个)。看到有关详细信息,请访问http://msdn.microsoft.com/en-us/library/aa365247.aspx

作者: Adam Rosenfield 发布者: 2008 年 11 月 5 日

13

51770 作者的声誉

根据MSDN,它是260个字符。它包括"<NUL>"- 不可见的终止空字符,因此实际长度为259。

但阅读文章,它有点复杂。

作者: Kibbee 发布者: 2008 年 11 月 5 日

1

10989 作者的声誉

255个字符,尽管完整路径也不应该长于此字符。维基百科上有一个很好的表格:http//en.wikipedia.org/wiki/Filename

作者: svinto 发布者: 2008 年 11 月 5 日

25

989 作者的声誉

这是257个字符。确切地说:NTFS本身确实施加了几千个字符的最大文件名长度(大约30,000个字符)。但是,Windows为Path + Filename强加了260最大长度。驱动器+文件夹至少占用3个字符,因此最终得到257个字符。

作者: Alphager 发布者: 2008 年 11 月 5 日

15

17901 作者的声誉

199在Windows XP NTFS上,我刚检查过。

这不是理论,而是仅仅是试试我的笔记本电脑。可能会有缓解效果,但它实际上不会让我变大。

有什么其他设置限制这个,我想知道吗?亲自试试吧。

作者: dove 发布者: 2008 年 11 月 5 日

-2

25 作者的声誉

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

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

“假设我们讨论的是NTFS而不是FAT32,”路径+文件的255个字符“是Explorer的限制,而不是文件系统本身.NTFS支持长达32,000个Unicode字符的路径,每个组件最多255个字符。

资源管理器 - 和Windows API-限制路径的260个字符,包括驱动器号,冒号,分隔斜杠和终止空字符。如果您使用\\“ 启动它”,可以在Windows中读取更长的路径

如果您阅读上述帖子,您会看到第5件事您可以确定:找到至少一个顽固的计算机用户!

作者: fane 发布者: 2009 年 11 月 20 日

12

594 作者的声誉

NTFS中的长度为255. NameLengthNTFS $Filename属性中的字段是一个没有偏移量的字节; 这产生了0-255的范围。

文件名iself可以位于不同的“名称空间”中。到目前为止有:POSIX,WIN32,DOS和(WIN32DOS - 当文件名本身可以是DOS名称时)。(由于字符串有一个长度,它可能包含\ 0,但这会产生问题而不在上面的命名空间中。)

因此,文件或目录的名称最多可以包含255个字符。在Windows下指定完整路径时,需要在路径前加上\\?\(或使用\\?\ UNC \ server \ share作为UNC路径)将此路径标记为扩展长度(~32k字符) 。如果您的路径较长,则必须设置工作目录(由于流程范围设置导致的副作用)。

作者: Dominik Weber 发布者: 2010 年 8 月 24 日

4

3328 作者的声誉

我将此添加到上述批准的答案中。

要清楚,人们认为它是255-260个字符的原因是因为这是Windows资源管理器支持的全部内容。如果文件名上的文件副本长于此值,则会出错。但是,一个程序可以读取和写入更长的文件名(这就是你如何获得Explorer首先抱怨的长度)。在这种情况下,微软的“推荐修复”是在原始程序中打开文件并将其重命名。

作者: std''OrgnlDave 发布者: 2012 年 10 月 9 日

24

774 作者的声誉

当尝试使用长文件名保存文件时,这就是框架4.5中的“未处理异常”:

指定的路径,文件名或两者都太长。完全限定的文件名必须少于260个字符,目录名必须少于248个字符。

截图

作者: SturmCoder 发布者: 2013 年 4 月 12 日

3

331 作者的声誉

根据新的Windows SDK文档(8.0),似乎提供了新的路径限制。有一组新的路径处理函数和PATHCCH_MAX_CCH的定义如下:

// max # of characters we support using the "\\?\" syntax
// (0x7FFF + 1 for NULL terminator)
#define PATHCCH_MAX_CCH             0x8000
作者: Cplusminus_is_coming 发布者: 2013 年 9 月 11 日

-2

341 作者的声誉

238! 我使用以下bat脚本在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
作者: SzB 发布者: 2015 年 5 月 28 日

-1

1536 作者的声誉

我无法在WS 2012 Explorer中创建名称为+ period + \ textnesion且长度超过224个字符的文件。不要射击使者!

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

该系统找不到指定的路径。

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

作者: ajeh 发布者: 2018 年 2 月 23 日

3

11053 作者的声誉

这部分官方文档清楚地说明了NTFS,exFAT和FAT32 的255个Unicode字符,以及UDF的127个Unicode或254个ASCII字符。

除此之外,最大路径名长度始终为32,760个Unicode字符,每个路径组件不超过255个字符。

作者: caw 发布者: 2018 年 8 月 9 日
32x32