C#: любой способ обойти ограничение 260 символов полного пути? [дубликат]

Возможные Дубликаты:
почему в Windows существует ограничение длины пути 260 символов?

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

по сути:
почему должен ли быть предел персонажа?
Как его обойти?

3 ответов


использовать \?\ префикс UNC для выхода из" режима DOS " для путей. Максимальная длина путей UNC составляет 32 тыс. символов.

подробнее здесь: http://msdn.microsoft.com/en-us/library/aa365247.aspx


С MSDN:

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


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

посмотри этот вопрос и его ответы, которые приведут вас к MSDN: именование файлов и имен

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