如何创build名称超过260个字符的文件夹

我想实际创build一个文件夹层次结构。 但问题是在某些情况下,文件夹名称超过了260个字符,文件夹创build失败。 我已经使用Win32文件命名空间创build了这个文件夹层次结构。 我想用下面的格式创build一个文件夹结构。 DRIVE_LETTER:\ FOLDER1 \ FOLDER2 \ FOLDER3 \ FOLDER4 …….. \文件夹(N-1)\文件夹(N)

FOLDER1,FOLDER2,FOLDER3等是文件夹的名称。 这些名称长度超过260个字符,例如:

FOLDER1名字是qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm

FOLDER2名字是mnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewqmnbvcxzlkjhgfdsapoiuytrewq

像这样就行了

我怎样才能得到这个文件夹名称/文件名称的长度限制。

操作系统:Windows 7 64位和Windows Server 2008 R2 64位。

请帮忙

MSDN的CreateDirectory函数正是这样解释你的:

要将此限制扩展为32,767个宽字符,请调用函数的Unicode版本,并将\\?\前置到路径中。 有关更多信息,请参阅命名文件。

另请参阅: 我应该处理比MAX_PATH更长的文件吗?

NTFS支持高达32K(32,767宽字符)的文件名。 您只需要使用正确的API和正确的文件名语法。 基本规则是:文件名应以\\?\开头,如\\?\C:\Temp 。 您可以使用与UNC相同的语法: \\?\server\share\Path

你可以使用这两个技巧之一:

  • 要创建路径长度超过260个字符的文件夹结构(如C:\folder1\folder2\...\folder20 ,可以创建C:\folder19C:\folder20 ,然后将folder20及其所有子文件夹移动到C:\folder19 ,然后创建C:\folder18 C:\folder19 ,然后将C:\folder18移动到C:\folder18 。 重复,直到你完成创建这个结构。
  • 您可以使用\\?\C:\folder1\folder2\...\folder20表示法来创建您的路径。 更多信息在这里: http : //msdn.microsoft.com/en-us/library/windows/desktop/aa365247 ( v=vs.85 ) .aspx (搜索单词最大路径长度限制 )。

单个路径组件 (例如,文件夹名称或文件名)受限于GetVolumeInformation返回的MaximumComponentLength的值。 这在理论上是与文件系统相关的,但实际上总是255。

所以,除非你制作自己的支持更长文件组件的文件系统驱动程序,否则你不能完成你的要求。 但是你可以做的是创建一个总长度超过260个字符的路径,正如其他答案中的指针一样。