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


当前回答

这是在框架4.5中,当试图保存一个长文件名的文件时,“Unhandled异常”所说的:

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

其他回答

这是在框架4.5中,当试图保存一个长文件名的文件时,“Unhandled异常”所说的:

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

255个字符。

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

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

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

它有257个字符。 准确地说: NTFS本身的最大文件名长度为几千个字符(大约30,000个左右)。 但是,Windows对路径+文件名规定了260的最大长度。驱动器+文件夹至少占用3个字符,因此最终有257个字符。

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