在NTFS中有没有文件路径的长度限制?

问题描述:

为什么我无法在NTFS文件系统中创建路径字符超过255的深度路径? 它似乎是FAT32的限制,但也存在于NTFS?谁能提供一些文件?在NTFS中有没有文件路径的长度限制?

非常感谢!

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

+0

应当注意的是,API是与Windows 95不支持更长的路径比'MAX_PATH'人物介绍:壳牌API。 – 2016-01-21 19:05:37

从维基

文件名引用被限制为 255 UTF-16码字。某些名称 保留在卷根目录 目录中,不能用于 文件。它们是:$ MFT,$ MFTMirr, $ LogFile,$ Volume,$ AttrDef,。 (dot), $ Bitmap,$ Boot,$ BadClus,$ Secure, $ Upcase和$ Extend; [3]。 (点)和 $扩展都是目录; 其他文件。 NT内核限制为 完整路径为32,767 UTF-16代码 单词。

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

Doc。只要每个单独的路径组件都位于该路径组件之下,您当然应该能够创建长度超过255个字节的文件路径。但是,您必须使用文件访问调用的Unicode(W)版本来获取此行为;如果您使用的是基于字节的ANSI(A)接口(如stdio所使用的接口),那么您将被旧的Unicode前缀路径接口的限制所困住。