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


当前回答

根据新的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

其他回答

官方文档的这一部分明确表示,对于NTFS, exFAT和FAT32,它是255个Unicode字符,对于UDF,它是127个Unicode或254个ASCII字符。

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

根据新的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

238年! 我在Win7 32位下用下面的bat脚本检查了它:

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

我无法在WS 2012资源管理器中创建名称+句点+扩展名超过224个字符的文件。别朝送信的开枪!

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

系统无法找到指定的路径。

在资源管理器中创建的具有224个字符名称的文件无法在notepad++中打开-它只是产生了一个新文件。

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

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