我在文件夹path中有几个级别的目录。 当path超过256时,我无法从中创build子文件夹或文件。 有没有机会build立超过这个长度的path。 谁能帮我吗。
实际上路径字符串的限制是260个字符。 底层操作系统,如今可以支持更长的路径名称, 最多32,767个字符 。 为了命名长名称的路径,您需要使用magic \\?\
前缀,并使用Unicode的Unicode版本。
但是,许多工具不支持这种长名称。 这样一个工具的典型例子是资源管理器,它不会让你创建名称超过260个字符的对象。 正因为如此,我强烈建议你避免创造这么长的名字,这样做可以节省你很多痛苦。
这应该让你开始: http : //msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx#maxpath
不幸的是,这个问题我不认为会很快消失,所以你最好熟悉这些东西。
另外,如果您可以访问支持长路径的robocopy
(附带Windows Vista和7,但也可用于XP),则可以在较高层文件夹中创建文件/子文件夹,然后使用robocopy将子文件夹移到文件夹树中更深处的所需位置。
根据这里的文档http://msdn.microsoft.com/en-us/library/Aa365247 ,最大长度实际上是大约32,000,但是大多数Windows API仍然限制您到MAX_PATH
这是260.有一些unicode API让你超越260的限制。
请参阅http://msdn.microsoft.com/en-us/library/aa363856 。
在该函数的ANSI版本中,名称被限制为MAX_PATH个字符。 要将此限制扩展为32,767个宽字符,请调用函数的Unicode版本,并将
\\?\
前置到路径中。 有关更多信息,请参阅命名文件。