2011-01-12 1 views
6

Можно создать дубликат:
Why does the 260 character path length limit exist in Windows?C#: Любой способ преодолеть предел в 260 символов полностью пройденного пути?

Я пытаюсь выяснить способ обойти это страшился 260 персонаж полностью квалифицированное ограничения пути и в то же время интересно, почему ад есть ли путь для начала !? Я знаю, что некоторым людям кажется, что «много», но это действительно не так, поскольку я столкнулся с этой проблемой.

В принципе:
Почему должен существовать предел характера?
Как обойти это?

+0

Это ограничение ОС. –

+0

Слышал Twitter? Он имеет ограничение в 140 символов. Это одна из причин увеличения интереса к укороченным URL-адресам, таким как Bitly. – DOK

ответ

11

Используйте префикс UNCдля выхода из режима «DOS» для путей. Максимальная длина для UNC-путей - 32 тыс. Символов.

Больше информации здесь: http://msdn.microsoft.com/en-us/library/aa365247.aspx

+1

"\\? \" Не делает его UNC, \\? \ Поддерживает UNC. –

+0

Каждый компонент (\ ... \) имеет ограничение значения 'lpMaximumComponentLength' (из функции' GetVolumeInformation'). – n00dles

+0

Есть ли способ обхода этого предела компонента, чтобы каждый компонент был длиннее указанного предела, например, по умолчанию 255 символов? – Swtsvn

1

Ну, во-первых, это не имеет ничего общего с C#, в частности, и все, что с API Windows, в котором этот предел находится. :)

Взгляните на this question и его ответы, которые приведут вас к MSDN: Naming Files, Paths, and Namespaces

пути файлов Unicode (описанных в ответах на вопрос, и в статье MSDN) может быть в виде раствора, с некоторые оговорки.

8

От MSDN:

API-интерфейс для Windows имеет множество функций, которые также имеют версии Unicode для разрешения на пути расширенных длинами для максимальной общей длины пути 32767 символов. Этот тип пути состоит из компонентов, разделенных обратными косыми чертами, каждый до значения, возвращаемого параметром lpMaximumComponentLength функции GetVolumeInformation (это значение обычно составляет 255 символов). Чтобы указать путь расширенной длины, используйте префикс «\\?\». Например, «\\?\D:\very long path».

 Смежные вопросы

  • Нет связанных вопросов^_^