C#:如何绕过完全限定路径的260个字符限制?

时间:2011-01-12 18:35:18

标签: c# filepath

  

可能重复:
  Why does the 260 character path length limit exist in Windows?

我正在试图找到一种方法来绕过这个可怕的260个字符的完全限定路径限制,同时我想知道为什么到底有一个路径限制开始!?我知道有些人260似乎“很多”,但事实上我并没有遇到这个问题。

基本上:
为什么必须有字符限制?
怎么绕过它?

3 个答案:

答案 0 :(得分:12)

使用\\?\ UNC前缀打破路径的“DOS模式”。 UNC路径的最大长度为32k个字符。

此处有更多信息:http://msdn.microsoft.com/en-us/library/aa365247.aspx

答案 1 :(得分:10)

来自MSDN

  

Windows API有许多函数也具有Unicode版本,允许扩展长度路径,最大总路径长度为32,767个字符。这种类型的路径由用反斜杠分隔的组件组成,每个组件都取决于GetVolumeInformation函数的lpMaximumComponentLength参数中返回的值(此值通常为255个字符)。要指定扩展长度路径,请使用“\\?\”前缀。例如,“\\?\D:\very long path”。

答案 2 :(得分:1)

嗯,首先,这与C#无关,而且与Windows API有关,其中包含该限制。 :)

查看this question及其答案,它将引导您进入MSDN:Naming Files, Paths, and Namespaces

Unicode文件路径(在问题的答案和MSDN文章中描述)可能是解决方案,但有一些警告。