Windows 10 слишком длинный путь к файлу

Как в Windows 10 включить поддержку пути к файлам длиной более 260 символов

Благодаря Anniversary Update для Windows 10 вы можете, наконец, отказаться от ограничения максимального пути в 260 символов в Windows. Вам просто нужно внести небольшие изменения в реестр Windows или групповую политику. Далее рассказано, как это сделать.

До Windows 95, операционная система Windows допускала только имена файлов длиной восемь символов с расширением файла из трёх символов, обычно называемое именем файла 8.3. Windows 95 отказалась от этого, чтобы разрешить длинные имена файлов, но по-прежнему ограничивала максимальную длину пути (которая включает полный путь к папке и имя файла) не более 260 символами. Этот предел был установлен тогда и действует до сих пор. Если вы когда-либо сталкивались с этим ограничением, скорее всего, это было, когда вы пытались скопировать папки с глубоким вложением в другие папки, например, при копировании содержимого жёсткого диска в папку на другом диске. В Windows 10 Anniversary Update наконец добавлена возможность отказаться от этой максимальной длины пути.

Есть одна оговорка. Этот новый параметр не обязательно будет работать с каждым приложением, но он будет работать с большинством. В частности, любые современные приложения должны быть в порядке, как и все 64-битные приложения. Более старые 32-битные приложения должны быть подготовлены специальным образом, что на самом деле означает, что разработчик указал в файле манифеста приложения, что приложение поддерживает более длинные пути. У большинства популярных 32-битных приложений проблем не должно быть. Тем не менее вы ничем не рискуете если выполните эту настройку. Если приложение не работает, единственное, что произойдёт, это то, что оно не сможет открывать или сохранять файлы, сохранённые в местах, где полный путь превышает 260 символов.

Windows Home: как снять ограничение в 260 символов на путь имени файла

Если у вас версия Windows Home, вам придётся отредактировать реестр Windows, чтобы внести эти изменения. Вы также можете сделать это таким образом, если у вас Windows Pro или Enterprise, но вы чувствуете себя более комфортно, работая в реестре, чем редактор групповой политики. (Однако, если у вас есть Pro или Enterprise, мы рекомендуем использовать более простой редактор групповой политики, как описано в следующем разделе.)

Стандартное предупреждение: редактор реестра является мощным инструментом, и неправильное его использование может сделать вашу систему нестабильной или даже неработоспособной. Это довольно простая настройка, и пока вы придерживаетесь инструкции, у вас не должно быть никаких проблем. Тем не менее если вы никогда не работали с реестром ОС раньше, изучите более подробно о том, как использовать редактор реестра, прежде чем приступить к работе. И обязательно сделайте резервную копию реестра (и вашего компьютера!) перед внесением изменений.

Чтобы начать, откройте редактор реестра, нажав «Пуск» и напечатав «regedit». Нажмите Enter, чтобы открыть редактор реестра и дать ему разрешение вносить изменения в свой компьютер.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

В редакторе реестра используйте левую боковую панель, чтобы перейти к следующему ключу:

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Справа найдите значение с именем LongPathsEnabled и дважды щёлкните его. Если вы не видите значения в списке, вам нужно создать его, щёлкнув правой кнопкой мыши по ключу FileSystem, выбрав New > DWORD (32-bit) Value, а затем присвоив имя новому значению LongPathsEnabled.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

В окне свойств значения измените значение с 0 на 1 в поле «Значение» и нажмите кнопку «ОК».

Теперь вы можете закрыть редактор реестра и перезагрузить компьютер (или выйти из своей учётной записи и войти снова). Если вы хотите отменить изменения, просто вернитесь к значению LongPathsEnabled и установите его значение от 1 до 0.

Включите поддержку длинных имён файлов одним кликом

Если вы не хотите погружаться в Реестр самостоятельно, мы создали два файла с настройками реестра, которые вы можете использовать. Один хак удаляет ограничение пути в 260 символов, а другой хак восстанавливает ограничение по умолчанию. Оба сжаты в следующий файл ZIP. Дважды щёлкните тот, который вы хотите использовать, кликните по подсказкам и перезагрузите компьютер.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Windows Pro или Enterprise: как снять ограничение в 260 символов на путь имени файла с помощью редактора локальной групповой политики

Если вы используете Windows 10 Pro или Enterprise, самый простой способ отменить ограничение на длину пути файла в 260 символов это использовать редактор локальной групповой политики. Это довольно мощный инструмент, поэтому, если вы никогда не использовали его раньше, стоит потратить некоторое время на изучение того, что он может делать. Кроме того, если вы находитесь в сети компании, сделайте всем одолжение и сначала проконсультируйтесь с вашим администратором. Если ваш рабочий компьютер является частью домена, вполне вероятно, что он является частью групповой политики домена, которая в любом случае заменит локальную групповую политику.

В Windows 10 Pro или Enterprise нажмите «Пуск», введите gpedit.msc и нажмите Enter.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

В редакторе локальной групповой политики в левой панели перейдите к Конфигурация компьютера > Административные шаблоны > Система > Файловая система. Справа найдите элемент «Включить длинные пути Win32» и дважды щёлкните его.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

В открывшемся окне свойств выберите параметр «Включено» и нажмите «ОК».

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Теперь вы можете выйти из редактора локальной групповой политики и перезагрузить компьютер (или выйти и снова войти), чтобы изменения вступили в силу. Если в любой момент вы хотите отменить изменения, просто следуйте той же процедуре и установите для этого параметра значение «Отключено» или «Не настроено».

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

Источник

Windows 10 слишком длинный путь к файлу

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Pyatilistnik.org. В прошлый раз мы с вами разобрали возможности утилиты PING, рассмотрели как ее применять на практике. В сегодняшней публикации я вам покажу, как устраняется боль и печаль в операционных системах Windows, я говорю про длинные пути, в своей практике я очень часто встречал жалобы «Слишком длинный целевой путь» или «Слишком длинный конечный путь«, то же самое вы можете встретить и при удалении. Ниже я покажу, как выкручиваться из данной ситуации.

Описание проблемы длинных путей

Тем не менее, файловая система Windows по-прежнему накладывает некоторые ограничения, например, какие символы могут использоваться в именах файлов и общую длину путей. Некоторое время максимальная длина пути составляла 260 символов, но с появлением Windows 10, часть ограничений начала потихоньку уходить, например для приложений и появилась возможность отключить проверку MAX_PATH и использовать длинные пути без префикса \\?\.

Что интересно, значение в 260 символов обусловлено значением MAX_PATH Win32 API. У файловой системы NTFS максимальная длина пути ″немного″ больше и составляет 32767 символа. Для обхода ограничений Win32 API некоторые приложения используют формат UNC, указывая абсолютный путь с префиксом \\?\, например так:

Большинство людей может и не столкнуться с ней, а вот почти каждый системный администратор обязательно это увидит. Тут все дело в том, что в большинстве организаций есть свои сетевые файловые ресурсы, через которые пользователи производят обмен и работу с документами. В какой-то момент люди могут создать такой путь, который будет 258 или 260 символов, попытаются туда скопировать файл, а им выдастся ошибка:

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Тоже самое при копировании в папку, так же выскакивает «Слишком длинный целевой путь».

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Вот ошибка при извлечении архива в сетевую папку:

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Методы снимающие ограничения на длину пути в Windows

Нюансы длинных путей в приложениях

Есть один нюанс. Этот новый параметр (имеется ввиду та политика и ключ реестра) не обязательно будет работать со всеми существующими приложениями, но он будет работать с большинством. В частности, любые современные приложения должны работать нормально, как и все 64-битные приложения. Старые 32-разрядные приложения должны быть применимы для работы, что на самом деле просто означает, что разработчик указал в файле манифеста приложения, что приложение поддерживает более длинные пути. Большинство популярных 32-битных приложений не должно вызывать проблем. Тем не менее, вы ничем не рискуете, пробуя настройку. Если приложение не работает, единственное, что произойдет, это то, что оно не сможет открывать или сохранять файлы, сохраненные в местах, где полный путь превышает 260 символов.

Если вы разработчик, то чтобы ваше приложение имело возможность работать с длинными путями Windows, в манифесте обязательно указывайте следующие настройки:

Как в Windows 10 отключить ограничение на длину пути в 260 символов через политику

Чем примечателен данный метод, так это тем, что неподготовленных пользователей он не вынуждает выполнять команды или производить правку реестра, тут все в графическом виде. Так же если у вас есть домен Active Directory и вы хотите массово убрать ошибки «Слишком длинный целевой путь» или «Слишком длинный конечный путь» в приложениях и запретить им проверять MAX_PATH и использовать длинные пути без префикса \\?\, то групповые политики вам это помогут.

Покажу для начала, как делать через локальную политику, открываете окно «Выполнить» в котором пишите gpedit.msc.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Далее идем по пути:

Найдите тут параметр «Включить длинные пути Win32 (Enable Win32 long paths)«, по умолчанию он отключен, и я честно не понимаю почему. Активируйте его.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Как я писал выше, в проводнике это не даст ни каких эффектов, поэтому вы все так же будите получать ошибку при копировании, создании, удалении «Слишком длинный целевой путь» или «Слишком длинный конечный путь«. Ниже я покажу, что делать если нужно что-то там удалить или изменить. Данное ограничение в длине пути теперь не подхватиться на лету всеми приложениями, потребуется перезагрузка.

Включение поддержки длинных путей через реестр

Данный метод ни чуть не сложнее предыдущего и делает все то же самое, включает поддержку длинных путей свыше 256 символов для приложений Windows. Когда вы что-то меняете через редактор политик, по сути меняются настройки в реестре, это нужно помнить и знать. Сейчас я вам покажу какой ключ меняется. Откройте редактор реестра Windows. Перейдите в раздел:

тут вам необходимо найти параметр LongPathEnabled, которому для активации поддержки длинных путей и изменения ограничений в MAX_PATH, нужно задать значение «1». Тут потребуется перезагрузка.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

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

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Еще вы можете сделать такую поддержку и для конкретного пользователя по пути:

Если там нет ключа LongPathsEnabled, то создайте его, тип DWORD (32 бита) и значение 1.

Как в Windows 10 отключить ограничение на длину пути в 260 символов через PowerShell

Не все люди готовы копаться в редакторах и реестрах, им нужно быстрое решение, одним из таких является PowerShell. В оболочке выполните команду для активации параметра «Включить длинные пути Win32 (LongPathEnabled)». Не забываем перезагрузить систему.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Как удалять, копировать, переносить файлы и папки при ошибке с длинными путями

Разобравшись с тем, как отключить проверку MAX_PATH в приложениях, давайте теперь поймем и научимся решать проблему длинных путей на файловых шарах и просто в проводнике. Классическая ситуация, когда пользователь попытался перенести свой файл или удалить его, создать папку и так далее, и он получает ошибку с пресловутыми длинными путями. Он просит разобраться вас и тут начинаются танцы с бубнами, вы просите его либо переименовать часть пути, или попросить его произвести действия в другом расположении, или просто забить, сказав, что виновата Windows со своими ограничениями, но мы же с вами профессионалы и инженеры, поэтому должны уметь выходить из таких ситуаций.

Как в Windows 10 отключить ограничение на длину пути в 260 символов через командную строку

Запустите командную строку в режиме администратора и введите:

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Обход ограничений длинных путей через 7zFM

Наверняка многие знают архиватор 7Zip, но мало кто пользуется его файловым менеджером 7zFM.exe, а зря именно он может вам помочь в ситуации с сообщением «Слишком длинный целевой путь» или «Слишком длинный конечный путь». Вот у меня есть тестовая директория, у которой уже есть 260 символов в пути, и я не могу там создавать новую папку.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Откройте 7zFM.exe и перейдите в нем в конечную папку вашего пути.

Для создания новой папки нажмите клавишу F7.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Задайте необходимое вам имя, в моем примере это будет «БОльше 260 Microsot«.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

В результате у нас создалась новая папка и заметьте 7zFM не ругнулся на наличие длинных путей, он их игнорирует просто и все.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Проверяем, что директория доступна через проводник Windows.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Все прекрасно отображается. Теперь я думаю вы легко сможете переносить, копировать, удалять файлы через 7zFM, когда вам проводник Windows ругается на наличие длинных путей.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Как обойти ограничение длинных путей через символьную ссылку

Такой трюк мы с вами уже проделывали, когда нужно было переносить IMAP профиль у Outlook. Смысл в том, что создается файл в нужном вам месте, и этот файл это просто ярлык ссылающийся на нужный вам файл или папку, после этого путь сокращается и вы можете удалять или создавать все что вам нужно. Откройте командную строку, далее вам нужно иметь два составляющих:

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Нам поможет команда mklink, где ключ /D создает ссылку на каталог

Источник

Длинные пути в Windows 10

Практически каждый пользователь Windows рано или поздно сталкивается с ошибкой ″слишком длинный путь″ (path too long). Ошибка эта возникает при работе с файлами или папками, у которых полный путь превышает значение в 260 символов.

Напомню, что полный путь включает в себя букву диска, двоеточие, обратный слэш, имена компонентов (файл, директория) разделенные слешем и завершающий пустой символ (NUL). Выглядит полный путь примерно так:

Соответственно, если сумма всех компонентов пути больше 260 символов, то путь считается слишком длинным. Большинство приложений Windows не умеют работать с такими путями и при обращении к файлу\папке выдадут примерно такое сообщение:

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Что интересно, значение в 260 символов обусловлено значением MAX_PATH Win32 API. У файловой системы NTFS максимальная длина пути ″немного″ больше и составляет 32767 символов. Для обхода ограничений Win32 API некоторые приложения используют формат UNC, указывая абсолютный путь с префиксом \\?\, например так:

Групповые политики

Первым делом открываем редактор локальных групповых политик, для чего жмем клавиши Win+R и выполняем команду gpedit.msc.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Нужная нам политика находится в разделе Конфигурация компьютера\Административные шаблоны\Система\Файловая система (Computer configuration\Administrative templates\System\Filesystem) и называется Включить длинные пути Win32 (Enable Win32 long paths).

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Для активации поддержки длинных путей надо перевести политику в состояние «Включено».

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Реестр

Для включения поддержки длинных путей через реестр необходимо найти в разделе HKLM\System\CurrentControlSet\Control\FileSystem параметр с именем LongPathEnabled и задать его значение равным 1.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Эту операцию можно произвести с помощью PowerShell, командой:

В обоих случаях потребуется перезагрузить компьютер. После перезагрузки изменения вступят в силу и для путей будет действовать только ограничение файловой системы NTFS (32767 символа), превысить которое вам навряд ли удастся. Однако это вовсе не значит, что можно расслабится. В некоторых приложениях проверка MAX_PATH заложена в коде, поэтому по возможности лучше не превышать это ограничение.

Дополнение

Для того, чтобы пользоваться длинными путями, в приложении должна быть включена их поддержка. Если вы пишите собственное приложение, то для поддержки длинных путей в манифесте приложения надо указать следующие настройки:

А теперь о грустном. Как внезапно оказалось, в проводнике Windows поддержка длинных путей не реализована. Один из разработчиков Microsoft по этому поводу сказал примерно следующее:

″Эта функция не готова для включения в Windows Explorer. Вам нужно подождать, пока Microsoft не включит ее в Explorer, или использовать сторонний инструмент управления файлами, который совместим с длинными путями. ″

Это было сказано еще в 2016 году. Но, судя по всему, разработчики на данную проблему просто забили. На данный момент в версии 1903 проводник все так же не поддерживает длинные пути файлов. Вот так 🙁

Источник

Ошибка ″слишком длинный путь″ (path too long) в Windows 10

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Практически каждый пользователь Windows рано или поздно сталкивается с ошибкой ″слишком длинный путь″ (path too long). Ошибка эта возникает при работе с файлами или папками, у которых полный путь превышает значение в 260 символов.

Напомню, что полный путь включает в себя букву диска, двоеточие, обратный слэш, имена компонентов (файл, директория) разделенные слешем и завершающий пустой символ (NUL). Выглядит полный путь примерно так:

Соответственно, если сумма всех компонентов пути больше 260 символов, то путь считается слишком длинным. Большинство приложений Windows не умеют работать с такими путями и при обращении к файлу\папке выдадут примерно такое сообщение:

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Что интересно, значение в 260 символов обусловлено значением MAX_PATH Win32 API. У файловой системы NTFS максимальная длина пути ″немного″ больше и составляет 32767 символов. Для обхода ограничений Win32 API некоторые приложения используют формат UNC, указывая абсолютный путь с префиксом \?\, например так:

Групповые политики
Первым делом открываем редактор локальных групповых политик, для чего жмем клавиши Win+R и выполняем команду gpedit.msc.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Нужная нам политика находится в разделе Конфигурация компьютера\Административные шаблоны\Система\Файловая система (Computer configuration\Administrative templates\System\Filesystem) и называется Включить длинные пути Win32 (Enable Win32 long paths).

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Для активации поддержки длинных путей надо перевести политику в состояние «Включено».

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Реестр
Для включения поддержки длинных путей через реестр необходимо найти в разделе HKLM\System\CurrentControlSet\Control\FileSystem параметр с именем LongPathEnabled и задать его значение равным 1.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Эту операцию можно произвести с помощью PowerShell, командой:

В обоих случаях потребуется перезагрузить компьютер. После перезагрузки изменения вступят в силу и для путей будет действовать только ограничение файловой системы NTFS (32767 символа), превысить которое вам навряд ли удастся. Однако это вовсе не значит, что можно расслабится. В некоторых приложениях проверка MAX_PATH заложена в коде, поэтому по возможности лучше не превышать это ограничение.

Источник

Выбираем длинный путь (или прощай MAX_PATH)

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Многим пользователям ПК под управлением ОС Windows, не говоря о разработчиках, знакомы проблемы при работе с длинными (более 260 символов, MAX_PATH) путями файлов или каталогов.

Приложения Win API

В приложениях, которые используют Win API для работы с файлами, рецепт избавления от ограничения MAX_PATH был известен с незапамятных времён – необходимо было использовать Unicode версию функции с окончанием «W» для работы с директорией или файлом и начинать путь с префикса \\?\. Это давало возможность использовать пути длинной до 32767 символов.

В Windows 10 (1607) поведение функций для работы с файлами изменилось: появилась возможность отключить проверку ограничений MAX_PATH на уровне системы.

Это избавляет от необходимости использовать префикса \\?\ и потенциально даёт шанс приложениям, работающим напрямую или косвенно через Win API, получить поддержку длинных путей без необходимости их пересборки. Как активировать эту возможность описано в конце статьи.

.Net Framework

.Net Core

Тут поддержку длинных путей анонсировали ещё в ноябре 2015 года. Видимо сказалось Open Source природа проекта и отсутствие строгой необходимости обеспечения обратной совместимости.

Вот тут можно посмотреть пример.

Как включить поддержку длинных путей в Windows 10 (1607)

Эта возможность по умолчанию отключена. Это объясняется тем, что данная функция является экспериментальной, и имеется необходимость дорабатывать различные подсистемы и приложения для полной поддержки.

Включить встроенную поддержку длинных путей можно создав или изменив следующий параметр системного реестра: HKLM\SYSTEM\CurrentControlSet\Control\FileSystem Параметр LongPathsEnabled (Тип: REG_DWORD) 1 – соответствует значению включено.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Или через групповые политики (Win+R\gpedit.msc) Computer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths.Оно же в локализованном варианте: Конфигурация компьютера > Административные шаблоны > Система > Файловая система > Включить длинные пути Win32.

Windows 10 слишком длинный путь к файлу. Смотреть фото Windows 10 слишком длинный путь к файлу. Смотреть картинку Windows 10 слишком длинный путь к файлу. Картинка про Windows 10 слишком длинный путь к файлу. Фото Windows 10 слишком длинный путь к файлу

Далее источники расходятся во мнении относительно манифеста (или я неправильно понял, но на данный момент проверить не имею возможности). Например, в документации MSDN написано, что манифест можно использовать в качестве альтернативного способа активации поддержки длинных путей в отдельных приложениях, а в блоге MSDN указано, что это является вторым обязательным шагом после активации в политиках.
Но они сходятся в формате задания данной опции:

С CMD, к сожалению, это не сработает, на данный момент, из-за особенностей работы с путями, а в PowerShell должно всё заработать.

На этом мой небольшой пятничный пост заканчивается, оставив за рамками вопросы полноты реализации поддержки длинных путей в Windows 10 (1607), или работоспособность при использовании различных комбинаций редакций Windows, файловых систем и API. По мере поступления новых фактов и результатов экспериментов пост будет обновляться.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *