为什么我不能在NTFS文件系统中创建路径中的字符大于255的深层路径? 它似乎是FAT32的限制,但也存在于NTFS中?任何人都可以提供一些文件吗?
非常感谢!
答案 0 :(得分:22)
260个字符的限制不是文件系统的限制,而是Win32 API的限制。 Win32将MAX_PATH定义为260,这是API用来检查传递给FileCreate,FileOpen等函数的路径的长度(在BCL中由.NET使用)。
但是,您可以绕过Win32规则并创建最多32K字符的路径。基本上您需要使用“\\?\ C:\ MyReallyLongPath \ File.txt”语法,您可以使用以前没见过。最后我检查过,.NET中的File和FileInfo类阻止你使用这种类型的路径,但你绝对可以用C / C ++来实现。这是一个更多信息的链接。
http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
答案 1 :(得分:4)
引自维基百科
文件名仅限于 255个UTF-16代码字。某些名字 在卷根中保留 目录并不能用于 文件。它们是:$ MFT,$ MFTMirr, $ LogFile,$ Volume,$ AttrDef ,. (点), $ Bitmap,$ Boot,$ BadClus,$ Secure, $ Upcase,$ Extend; [3]。 (点)和 $ Extend都是目录;该 其他是文件。 NT内核限制 完整路径到32,767 UTF-16代码 词语的强>
答案 2 :(得分:3)
Doc。您当然应该能够创建比255个字节更长的文件路径,只要每个单独的路径组件都在其下。但是,您必须使用文件访问调用的Unicode(W)版本才能获得此行为;如果您使用的是基于ANSI(A)字节的接口,例如stdio使用的接口,那么您将会遇到旧的Unicode前路径接口的限制。