C#:有没有办法绕过完全限定路径的260个字符限制?
可能重复:C#:有没有办法绕过完全限定路径的260个字符限制?,c#,filepath,C#,Filepath,可能重复: 我正试图找到一种方法来绕过这个可怕的260个字符的完全限定路径限制,同时我想知道为什么一开始就有一个路径限制!?我知道对一些人来说,260似乎“很多”,但自从我遇到这个问题以来,事实并非如此 基本上: 为什么必须有字符限制? 如何绕过它?使用\\?\UNC前缀打破路径的“DOS模式”。UNC路径的最大长度为32k个字符 这里有更多信息:首先,这与C无关,尤其是与Windows API无关,而Windows API就是其中的一个限制 看一看及其答案,这将引导您找到MSDN: Unic
我正试图找到一种方法来绕过这个可怕的260个字符的完全限定路径限制,同时我想知道为什么一开始就有一个路径限制!?我知道对一些人来说,260似乎“很多”,但自从我遇到这个问题以来,事实并非如此 基本上:
为什么必须有字符限制?
如何绕过它?使用
\\?\
UNC前缀打破路径的“DOS模式”。UNC路径的最大长度为32k个字符
这里有更多信息:首先,这与C无关,尤其是与Windows API无关,而Windows API就是其中的一个限制 看一看及其答案,这将引导您找到MSDN: Unicode文件路径(在问题的答案和MSDN文章中描述)可以作为解决方案,但有一些注意事项。来自: Windows API有许多函数,这些函数也有Unicode版本,允许扩展长度路径的最大总路径长度为32767个字符。这种类型的路径由反斜杠分隔的组件组成,每个组件的最大值为GetVolumeInformation函数的lpMaximumComponentLength参数中返回的值(该值通常为255个字符)。要指定扩展长度路径,请使用“
\\?\
”前缀。例如,“\\?\D:\very long path
”
听说过推特吗?它有140个字符的限制。这是人们对Bitly等URL缩写器兴趣高涨的原因之一。这是一个旧的Windows操作系统限制,不再相关,但它仍然会在许多操作系统功能中产生影响。但是您现在可以在.NET framework中使用长文件名。“\\?\”不使其成为UNC,\\?\支持UNC。每个组件(\…)都有一个
lpMaximumComponentLength
值限制(从GetVolumeInformation
函数)。是否有办法绕过此组件限制,使每个组件都比指定的限制长,例如默认的255个字符?