我试图找出一种方法来绕过这个可怕的 260 个字符的完全限定路径限制,同时我想知道为什么一开始就有路径限制!?我知道对某些人来说 260 似乎是“很多”,但自从我遇到这个问题以来,它确实不是。
基本上:
为什么必须有字符限制?
如何绕过它?
使用\\?\
UNC 前缀来打破路径的“DOS 模式”。UNC 路径的最大长度为 32k 个字符。
更多信息在这里:http: //msdn.microsoft.com/en-us/library/aa365247.aspx
从MSDN:
Windows API 有许多函数也有 Unicode 版本,以允许最大总路径长度为 32,767 个字符的扩展长度路径。这种类型的路径由用反斜杠分隔的组件组成,每个组件的最大长度为 GetVolumeInformation 函数的 lpMaximumComponentLength 参数中返回的值(该值通常为 255 个字符)。要指定扩展长度的路径,请使用“
\\?\
”前缀。例如,“\\?\D:\very long path
”。
嗯,首先,这与 C# 无关,与存在限制的 Windows API 有关。:)
看看这个问题及其答案,这将引导你到 MSDN: Naming Files, Paths, and Namespaces
Unicode 文件路径(在问题的答案和 MSDN 文章中描述)可能是解决方案,但有一些警告。