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


当前回答

Windows XP NTFS的199,我刚查过。

这不是理论,而是我在笔记本电脑上尝试的结果。可能会有缓解作用,但它不会让我把它变大。

我想知道是否有其他的设定限制了这一点?你自己试试吧。

其他回答

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

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

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

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

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

255个字符,但是完整的路径也不应该超过这个长度。维基百科上有一个很好的表格:http://en.wikipedia.org/wiki/Filename。

Windows XP NTFS的199,我刚查过。

这不是理论,而是我在笔记本电脑上尝试的结果。可能会有缓解作用,但它不会让我把它变大。

我想知道是否有其他的设定限制了这一点?你自己试试吧。

在Windows 11(在NTFS驱动器中)是带扩展名的236

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

123456789012345678901012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 9012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.txt