Установлено ли в Windows 7 ограничение на путь к файлу в 255 символов?

Насколько я понимаю, ограничение 255 символов в пути к файлу - это ограничение Windows. В чем причина этого? Если да, то была ли эта проблема решена в Windows 7?

В наших практиках непрерывной интеграции мы часто имеем глубоко вложенные структуры проекта, и было бы чрезвычайно полезно иметь возможность превышать 255 символов. Сейчас мы несколько вынуждены структурировать наши проекты таким образом, чтобы не упираться в этот искусственный потолок.


person The Matt    schedule 30.06.2009    source источник
comment
@DavidHeffernan Но этот 260 включает нулевой символ в конце и `C: \` в начале, поэтому можно использовать только 255 символов.   -  person Aaron Dufour    schedule 24.04.2013
comment
@DavidHeffernan Я ошибся. Microsoft часто указывает длину как 256, что вы получаете при правильном вычитании, а не как 260, что технически является пределом.   -  person Aaron Dufour    schedule 24.04.2013
comment
Меня эта проблема бесит. Он по-прежнему присутствует в Windows 8.1. Кажется, я не могу перемещать свои файлы, даже если КАК-ТО файл был создан в первую очередь. Если вы найдете способ создавать файлы с более чем 255 именами путей к файлам, вы можете полностью испортить чей-то Windows-машину.   -  person Automatico    schedule 25.04.2015
comment
По словам Джереми Куна, проблема уже прорабатывается и вскоре может быть решена. Смотрите это видео. youtube.com/watch?v=ZppqEMegCAA   -  person J Edward Ellis    schedule 14.07.2016
comment
Вопрос касается Windows 7, но в любом случае в Windows 10 есть возможность включить длинные пути для некоторых приложений. Для получения дополнительных сведений ознакомьтесь с этим ответом: stackoverflow.com/questions/27680647/   -  person quasoft    schedule 18.09.2016


Ответы (5)


См. http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Это объясняет, что версии Unicode API Windows имеют более высокие ограничения, и способы их включения.

person Drew Hoskins    schedule 30.06.2009
comment
Но небольшое предупреждение: есть куча кода (в основном сторонние системные утилиты и т.п.), который не работает с более длинными путями. У вас могут возникнуть проблемы с этим, если вы начнете использовать более длинные пути. - person ReinstateMonica Larry Osterman; 04.07.2009
comment
Эта статья верна? Я провел простой тест как с проводником Windows, так и с командной строкой Windows в Windows 7, и я не могу создавать пути к файлам, содержащие более 260 символов. Разве Microsoft не обновила эти приложения для использования Unicode-версий API Windows? - person Templar; 21.08.2012
comment
К сожалению, для проводника Windows в Windows 7 x64 все еще действует это ограничение пути. Это создает впечатление, что вся операционная система не преодолела этот предел, хотя на самом деле это просто проводник Windows, который не был обновлен для работы с более длинными путями. Вполне возможно, что сторонний файловый менеджер, использующий новейшие API, сможет обойти это. В конечном счете, будет ли программа, по-видимому, достигнуть ограничения пути, будет зависеть от того, использует ли эта программа новейшие API-интерфейсы в Windows. - person user1445967; 28.07.2013
comment
Это не вопрос новых или старых API. Вы получаете поддержку длинного пути только в том случае, если вы явно просите об этом, а Explorer этого не делает, предположительно по очевидной причине: совместимость с существующими сторонними приложениями. - person Harry Johnston; 26.04.2015
comment
-1 - Ссылка на потенциальное решение всегда приветствуется, но, пожалуйста, добавьте контекст вокруг ссылки, чтобы ваши коллеги-пользователи имели некоторое представление о том, что это такое и почему. Всегда указывайте наиболее релевантную часть важной ссылки, если целевой сайт недоступен или постоянно отключен. meta.stackoverflow.com/tags/link-only-answers/info - person Aaron Hall; 01.12.2015

Вы можете обойти это ограничение, используя subst, если вам нужно.

person Joshua    schedule 30.06.2009
comment
подробнее здесь: microsoft.com/resources/documentation/windows/xp/all/proddocs/ - person Chris B; 16.12.2010
comment
Или робокопию, встроенную в Windows, на основе этого ответа stackoverflow.com/questions/29865863/ - person KAE; 24.11.2015
comment
Вы должны продемонстрировать, как это сделать, и предоставить ссылку на соответствующую документацию. -1 - person Aaron Hall; 01.12.2015
comment
Хотя я проголосовал за, я согласен, что пример был бы полезен: subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1 Это помогло мне пройти путь глубиной в 500 символов. Причина появления ~ 1 в том, как проводник отформатировал путь. - person Adam Marcionek; 04.12.2015
comment
Аналогичное решение будет использовать соединения, либо через расширение оболочки, либо через mklink Пример: mklink /J C:\newdir C:\some\really\long\path\ - person Charles Grunwald; 26.06.2016

Обходные пути не являются решениями, поэтому ответ - «Нет».

Все еще ищем обходные пути, вот возможные решения: http://support.code42.com/CrashPlan/Latest/Troubleshooting/Windows_File_Paths_Longer_Than_255_Characters

person user1767754    schedule 14.10.2014
comment
Основные элементы Windows, включая PowerShell, оболочку проводника Windows и утилиты cmd, такие как del, по-прежнему не могут обрабатывать пути, длина которых превышает 250 символов, и никакое обходное решение не устраняет тот факт, что основные технологии Microsoft не обрабатывают длинные пути, по состоянию на 2016 год. Краткий ответ здесь пока Microsoft не задействует коллектив, мы мало что можем сделать. - person Warren P; 02.05.2016

@ Cort3z: если проблема все еще существует, это исправление: https://support.microsoft.com/en-us/kb/2891362 должен решить эту проблему (с win7 sp1 до 8.1)

person ale.com    schedule 28.04.2015
comment
Это отличное решение. Были ли у вас проблемы после его использования? - person Gabriel Fair; 23.08.2015

В Windows 10 версии 1607 ограничение было снято путем установки раздела реестра.

https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx?f=255&MSPPError=-2147217396#maxpath

person chedabob    schedule 04.10.2016
comment
а не в windows 7? - person gumuruh; 11.03.2017
comment
На самом деле это не кажется разумным, потому что, хотя он не отвечает на вопрос, он, вероятно, будет полезен многим людям, у которых есть похожие вопросы. - person mwfearnley; 13.07.2018
comment
Однако есть и другие вопросы, касающиеся Win10. - person mjs; 08.05.2019