为什么在 NTFS 文件系统中无法创建路径字符数超过 255 个的深层路径?FAT32好像有限制,但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

其他提示

这维基引

  

文件名被限制为   255 UTF-16码字。某些名字   在卷根被保留   目录而不能用于   文件。它们是:$ MFT,$ MFTMirr,   $日志文件,$卷,$ AttrDef。 (点),   $位图,$引导,$ BadClus,$安全,   $ Upcase,和$扩展; [3]。 (点)和   $延伸的两个目录;该   另一些文件。的的NT内核限制   完整路径32767 UTF-16码   词语的

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

文件。你当然应该能够超过255个字节的创造更长的文件路径,只要每个个体路径组件正在这一点。然而,你必须使用文件访问调用的Unicode(W)版本,以获得此行为;如果您使用的是ANSI(A)基于字节的接口,例如由标准输入输出所使用的,你会被卡住与旧预Unicode的路径接口的限制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top