我想实际创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
。
你可以使用这两个技巧之一:
C:\folder1\folder2\...\folder20
,可以创建C:\folder19
, C:\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个字符的路径,正如其他答案中的指针一样。