Как снять ограничение на длину имени файла в windows 10

Большинство администраторов и пользователей Windows при работе с файлами, так или иначе сталкивались с ошибкой “path too long”. Эта ошибка возникает при превышении полного пути к файлу (вместе с его именем) значения 260 символов. Многие приложения, в том числе проводник Windows, неправильно работают с такими длинными именами файлов, оказываясь их открывать, перемещать и удалять. Это ограничение не файловой системы NTFS, а библиотеки Win32 API (подробнее о проблеме и обходных способах ее решения рассказано здесь).

В новой сборке Windows 10 Insider Preview Build 14352 доступной участникам программы Windows Insider, появилась новая возможность отключить ограничение на максимальную длину пути.

Отключить ограничение MAX_PATH можно двумя способами: с помощью редактора групповых политик или через реестр. Рассмотрим оба:

  1. Запустите консоль редактора локальной групповой политики, нажав Win+R и выполнив команду gpedit.msc
  2. Перейдите в раздел редактора Local Computer Policy -> Computer Configuration -> Administrative Templates -> System -> Filesystem -> NTFS (Конфигурация компьютера -> Административные шаблоны -> Система -> Файловая система -> NTFS)Групповые политики NTFS
  3. Откройте политику Enable NTFS long pathsEnable NTFS long paths включить поддержку путей более 260 символов
  4. Включите политику, переведя ее в состояние Enabled
  5. Сохраните изменения

При использовании домашней версии Windows 10, в которой отсутствует редактор GPO, это же изменение можно внедрить с помощью редактора реестра.

  1. Запустите редактор реестра regedit.exe
  2. Перейдите в ветку HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies
  3. Создайте в данной ветке новый параметр типа Dword (32-bit) Value с именем LongPathsEnabledLongPathsEnabled - параметр реестра
  4. Чтобы отключить ограничение MAX_PATH, измените значение ключа на 1
  5. Также вы можете включить эту функцию одной командой PowerShell:
    Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name LongPathsEnabled -Value 1

Для вступления изменений в силу в обоих случаях требуется перезагрузка компьютера. После перезагрузки пользователи и программы смогут без ограничений работать с файлами, длина пути к которым превышает 260 символов. Теперь на файлы будет действовать только ограничение файловой системы NTFS – 32767 символов .

Этот функционал доступен всем пользователям Windows 10, начиная с Anniversary Update (1607), и в Windows Server 2016.

Слишком длинное имя файла или слишком длинный целевой путь — как исправить?

Как исправить ошибки слишком длинное имя файла или слишком длинный целевой путьПри копировании, создании, сохранении или перемещении файлов и папок в Windows 11 и Windows 10 на внутреннем HDD или SSD, при копировании данных на внешний диск или флешку, вы можете столкнуться с ошибками вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку», «Указано неправильное или слишком длинное имя файла» и другие, имеющие отношение к слишком длинным именам или путям к файлам и папкам.

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

  • Слишком длинное имя файла или слишком длинный целевой путь
    • Причины ошибки и способы её исправить
    • Как включить поддержку длинных путей в Windows
      • В редакторе реестра
      • В редакторе локальной групповой политики
    • Почему ошибка сохраняется при включенной поддержке длинных путей

Причины ошибки «Слишком длинное имя файла» и «Слишком длинный целевой путь» и способы её исправить

Слишком длинный целевой путь при копировании

Несмотря на то, что файловой системой NTFS длина пути ограничена 32760 символов, в Windows существует ограничение на полный путь в 260 символов, включая путь к папке и имя файла с расширением. Ещё одно ограничение — 255 символов на имя файла или отдельной папки. Схожие ограничения есть для файловых систем FAT32 и ExFAT. Когда полный путь к файлу, с которым вы выполняете действия, превышает указанное число символов, вы можете получить сообщение об ошибках о слишком длинном целевом пути или слишком длинном имени файла.

Ошибка Слишком длинное имя файла в Windows

Отсюда основные способы исправить ошибки, связанные с использованием слишком длинного пути:

  1. Использовать более короткие имена файлов и более простое и «компактное» дерево папок.
  2. Включить поддержку длинных путей — такая опция есть в Windows 10 и Windows 11, далее будет рассмотрен порядок действий. Однако, это решит не все проблемы, о чем мы также поговорим.
  3. Использовать файловые менеджеры, которые могут работать с длинными путями по умолчанию: Total Commander, Files (но для него потребуется включить и поддержку длинных путей в системе) или даже 7-Zip File Manager, который прекрасно с этим справляется.

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

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

В редакторе реестра

Если на вашем компьютере установлена Windows 11 или Windows 10 Домашняя, используйте редактор реестра для включения опции:

  1. Нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить» или нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter.
  2. В редакторе реестра перейдите к разделу
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
  3. В правой панели редактора реестра дважды нажмите по параметру с именем LongPathsEnabled и присвойте значение 1 вместо 0 для этого параметра. Включить поддержку длинных путей в редакторе реестра Windows
  4. Закройте редактор реестра, перезагрузите компьютер.

В редакторе локальной групповой политики

В Windows Pro и Enterprise можно использовать редактор локальной групповой политики:

  1. Нажмите клавиши Win+R на клавиатуре, введите gpedit.msc в диалоговом окне «Выполнить» и нажмите Enter.
  2. Перейдите к разделу Конфигурация компьютера — Административные шаблоны — Система — Файловая система.
  3. Дважды нажмите по параметру «Включить длинные пути Win32». Политики файловой системы в gpedit
  4. Установите значение «Включено» для этого параметра, примените настройки. Включить поддержку длинных путей в редакторе локальной групповой политики
  5. Закройте редактор локальной групповой политики и перезагрузите компьютер.

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

Почему ошибки длинных путей появляются, несмотря на включенную поддержку длинных путей

Имена файлов слишком длинны для помещения в эту папку

Даже если вы включите поддержку длинных путей к папкам и файлам в Windows 11/10, при действиях с такими файлами в проводнике и некоторых программах вы продолжите получать ошибки вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку» или «Указано неправильное или слишком длинное имя файла», также будут недоступны некоторые действия в папках, имеющих длинный путь.

Причина этого — поддержка длинных путей требуется не только на уровне системы, но и в самой программе, которая работает с этими путями, в качестве примера:

  • Проводник не сможет полноценно работать с длинными путями даже при включенной поддержке.
  • Файловый менеджер Files из магазина приложений будет исправно работать, если включить поддержку длинных путей, и будет сообщать об ошибках при отключенной поддержке. Работа с длинными путями в файловом менеджере Files
  • Total Commander или встроенный файловый менеджер 7-Zip работают с длинными путями независимо от того, включена ли их поддержка в Windows.

То же самое касается не только файловых менеджеров, но и прикладных программ: текстовых, графических и видео редакторов и другого ПО.

Надеюсь, инструкция прояснила причины ошибки и возможные способы решения проблемы. Если же вопросы остаются — жду их в комментариях.

Время на прочтение
4 мин

Количество просмотров 69K

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

В данной статье рассматриваются способы избавления от этого пережитка при разработке приложений на различных платформах (WinApi, .Net Framework, .Net Core) и активации нативной поддержки длинных путей в Windows 10 (Anniversary Update).

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

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

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

Это коснулось следующих функций:

Для работы с каталогами: CreateDirectoryW, CreateDirectoryExW, GetCurrentDirectoryW, RemoveDirectoryW, SetCurrentDirectoryW. И для работы с файлами: CopyFileW, CopyFile2, CopyFileExW, CreateFileW, CreateFile2, CreateHardLinkW, CreateSymbolicLinkW, DeleteFileW, FindFirstFileW, FindFirstFileExW, FindNextFileW, GetFileAttributesW, GetFileAttributesExW, SetFileAttributesW, GetFullPathNameW, GetLongPathNameW, MoveFileW, MoveFileExW, MoveFileWithProgressW, ReplaceFileW, SearchPathW, FindFirstFileNameW, FindNextFileNameW, FindFirstStreamW, FindNextStreamW, GetCompressedFileSizeW, GetFinalPathNameByHandleW.

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

.Net Framework

Хотя .Net Framework и использует Win API для работы с файлами — предыдущее изменение не принесло бы результата, т.к. в код BCL встроены предварительные проверки на допустимость длинны имён каталогов и файлов, и до вызова функций Win API дело даже не доходило, выдавая известное исключение. По многочисленным просьбам сообщества (более 4500 на UserVoice) в версии 4.6.2 из кода BCL вырезали проверки ограничения длинны пути, отдав это на откуп операционной и файловой системам!

Вот что это даёт:

  • При использовании префикса “\\?\” мы можем работать с длинными путями как в Win API,
    Directory.CreateDirectory("\\\\?\\" + long_dir_name);
  • Если активировать нативную поддержку длинных имен файлов Windows 10 (1607), то даже не потребуется использовать префикс!

Как включить:

  • Использовать .Net Framework 4.6.2 как цель при сборке приложения.
  • Использовать конфигурационный файл, например, если приложение уже было собрано под .Net 4.0:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
  <runtime>
    <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
  </runtime>
</configuration>

.Net Core

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

Как включить:
Всё работает из коробки. В отличие от реализации в .Net Framework – тут нет необходимости в добавлении префикса “\\?\” – он добавляется автоматически при необходимости.

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

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

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

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

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

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

<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
        <ws2:longPathAware>true</ws2:longPathAware>
    </windowsSettings>
</application>

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

P.S.

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

Спасибо за внимание!

Ошибка «Слишком длинное имя файла» возникает при выполнении различных операций с папками и файлами на внутренних/внешних хранилищах в Windows 10 и Windows 11. Также существуют вариации сообщения ошибки, в которых говорится, что у файла указано неправильное имя либо что у него прописан слишком длинный целевой путь.

В сегодняшней статье мы расскажем вам, что вызывает рассматриваемую ошибку и как от нее избавиться в кратчайшие сроки.

Что вызывает ошибку «Слишком длинное имя файла»?

слишком длинное имя файла

Майкрософт выставили ограничения на максимальную длину путей и имени файлов в Windows 10 и Windows 11. Пользователю нужно подстраиваться под следующие рамки:

  • макс. длина путей (+ имя и расширение) — 260 символов;
  • макс. длина названия файлов/папок — 255 символов.

Вот вам для примера расположение исполняющего файла игры Elden Ring с целевым путем в 54 символа:

D:\Steam\steamapps\common\ELDEN RING\Game\eldenring.exe

Ошибка «Слишком длинное имя файла» (и другие ее вариации) возникают перед пользователем тогда, когда тот пытается выполнять действия с файлами/папками, которые обладают либо слишком длинными именами, либо слишком длинными целевыми путями для своего расположения.

Проблема нечастая, т.к. 260/255 символов — это то количество символов, которого с головой хватает большинству пользователей. Тем не менее все же бывают случаи, когда доступных символов не хватает. К примеру, проблема актуальна для тех пользователей, кто задействует диск в качестве файлового хранилища.

Решение ошибки «Слишком длинное имя файла»

Пожалуй, самое очевидное решение в данной ситуации — это укорачивание пути/имени папки/файла. Как только это будет сделано, ОС перестанет ругаться и без задержек даст завершить начатое. Если укорачивание не представляется возможным, то в настройках ОС можно активировать поддержку длинных путей. Делается это разными способами — все зависит от редакции вашей Windows.

Windows 10/11 Домашняя

  • Нажмите WIN+R для вызова диалогового окошка «Выполнить»;
  • пропишите в пустой строке Regedit.exe и нажмите ENTER;
  • с помощью адресной строки окошка перейдите по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem;
  • найдите в списке справа параметр LongPathsEnabled и дважды кликните на него ЛКМ;
  • задайте параметру значение 1 (один) и сохраните внесенные изменения, перезагрузив ПК.

Windows 10/11 Профессиональная/Корпоративная

  • Нажмите WIN+R для вызова диалогового окошка «Выполнить»;
  • пропишите в пустой строке Gpedit.msc и нажмите ENTER;
  • в панель слева перейдите по пути «Конфигурация компьютера»→«Административные шаблоны»→«Система»→«Файловая система»;
  • кликните дважды ЛКМ по параметру «Включить длинные пути Win32»;
  • активируйте параметр, задав ему значение «Включено»;
  • сохраните внесенные изменения и перезагрузите ПК.

Что делать, если ошибка появляется даже с поддержкой длинных путей

К сожалению, вы гарантировано столкнетесь с ошибкой «Слишком длинное имя файла», даже если активируйте поддержку длинных путей. Дело в том, что данная поддержка не распространяется на отдельные приложения, например, Word, Photoshop, Premiere, и даже системный Проводник.

Чтобы полноценно работать с длинными путями и именами, которые выходят за рамки ограничений, нужно устанавливать сторонние файловые менеджеры. Но на какие из них обратить внимание? Рекомендуем взглянуть на следующие программы:

  • 7-ZIP
  • Far Manager
  • Directory Opus
  • Explorer++
  • One Commander
  • Total Commander
  • WinRAR

Технически, некоторые из них не являются «чистокровными» файловыми менеджерами, но даже с их помощью можно выполнить, например, удаление или перемещение файлов/папок, которые демонстрируют ошибку «Слишком длинное имя файла». Не все они бесплатны — имейте это ввиду.

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

Это лишь ограничение ОС, файловая система NTFS позволяет вписывать в 32767 символов в адресе. Этим, кстати, успешно пользуются приложения, которые работали в обход стандартных интерфейсов Windows, например, FAR и Total Commander. Ограничения в 260 символов также не касалось работы с файлами при сетевом доступе. Из-за подобного случались казусы, когда ОС отказывалась работать с файлами у одних пользователей и открывала их для других.

В Windows 10 компания Microsoft исправила ограничения на длину адреса файлов. Она создала настройки, которые нужно включить вручную, чтобы писать имена документов до 32 тыс. символов. Для этого зайдите в групповые политики, запустив программу gpedit.msc. По адресу «Конфигурация компьютера» — «Административные шаблоны» — «Система» — «Файловая система» — «NTFS» найдите опцию «Включение длинных адресов NTFS».

Редактор групповых политик gpedit.msc присутствует только в редакциях Windows 10 «Профессиональная» и «Корпоративная». Если вы используете другие, тогда придется редактировать реестр. Запустите редактор regedit.exe и по адресу HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Policies установите флажок LongPathsEnabled (тип DWORD).

  • Как снять общий доступ к папке в windows 7
  • Как снять пароль пользователя в windows 7
  • Как снять образ системы windows 10 и установить на другой компьютер
  • Как снять пароль администратора в windows 10 без прав администратора
  • Как снять пароль на ноутбуке windows если забыл пароль