Слишком длинное имя файла или слишком длинный целевой путь — как исправить?
При копировании, создании, сохранении или перемещении файлов и папок в Windows 11 и Windows 10 на внутреннем HDD или SSD, при копировании данных на внешний диск или флешку, вы можете столкнуться с ошибками вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку», «Указано неправильное или слишком длинное имя файла» и другие, имеющие отношение к слишком длинным именам или путям к файлам и папкам.
В этой инструкции подробно о том, чем вызваны эти ошибки и как можно их исправить в Windows последних версий, а также дополнительная информация, которая может быть полезной, чтобы решить проблему.
- Слишком длинное имя файла или слишком длинный целевой путь
- Причины ошибки и способы её исправить
- Как включить поддержку длинных путей в Windows
- В редакторе реестра
- В редакторе локальной групповой политики
- Почему ошибка сохраняется при включенной поддержке длинных путей
Причины ошибки «Слишком длинное имя файла» и «Слишком длинный целевой путь» и способы её исправить
Несмотря на то, что файловой системой NTFS длина пути ограничена 32760 символов, в Windows существует ограничение на полный путь в 260 символов, включая путь к папке и имя файла с расширением. Ещё одно ограничение — 255 символов на имя файла или отдельной папки. Схожие ограничения есть для файловых систем FAT32 и ExFAT. Когда полный путь к файлу, с которым вы выполняете действия, превышает указанное число символов, вы можете получить сообщение об ошибках о слишком длинном целевом пути или слишком длинном имени файла.
Отсюда основные способы исправить ошибки, связанные с использованием слишком длинного пути:
- Использовать более короткие имена файлов и более простое и «компактное» дерево папок.
- Включить поддержку длинных путей — такая опция есть в Windows 10 и Windows 11, далее будет рассмотрен порядок действий. Однако, это решит не все проблемы, о чем мы также поговорим.
- Использовать файловые менеджеры, которые могут работать с длинными путями по умолчанию: Total Commander, Files (но для него потребуется включить и поддержку длинных путей в системе) или даже 7-Zip File Manager, который прекрасно с этим справляется.
Как включить поддержку длинных путей в Windows 10 и Windows 11
В зависимости от установленной редакции Windows, можно использовать один из следующих способов включения поддержки длинных путей.
В редакторе реестра
Если на вашем компьютере установлена Windows 11 или Windows 10 Домашняя, используйте редактор реестра для включения опции:
- Нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить» или нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter.
- В редакторе реестра перейдите к разделу
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- В правой панели редактора реестра дважды нажмите по параметру с именем LongPathsEnabled и присвойте значение 1 вместо 0 для этого параметра.
- Закройте редактор реестра, перезагрузите компьютер.
В редакторе локальной групповой политики
В Windows Pro и Enterprise можно использовать редактор локальной групповой политики:
- Нажмите клавиши Win+R на клавиатуре, введите gpedit.msc в диалоговом окне «Выполнить» и нажмите Enter.
- Перейдите к разделу Конфигурация компьютера — Административные шаблоны — Система — Файловая система.
- Дважды нажмите по параметру «Включить длинные пути Win32».
- Установите значение «Включено» для этого параметра, примените настройки.
- Закройте редактор локальной групповой политики и перезагрузите компьютер.
Готово, теперь поддержка длинных путей в Windows включена, однако это не означает, что ошибки, с ними связанные, исчезнут.
Почему ошибки длинных путей появляются, несмотря на включенную поддержку длинных путей
Даже если вы включите поддержку длинных путей к папкам и файлам в Windows 11/10, при действиях с такими файлами в проводнике и некоторых программах вы продолжите получать ошибки вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку» или «Указано неправильное или слишком длинное имя файла», также будут недоступны некоторые действия в папках, имеющих длинный путь.
Причина этого — поддержка длинных путей требуется не только на уровне системы, но и в самой программе, которая работает с этими путями, в качестве примера:
- Проводник не сможет полноценно работать с длинными путями даже при включенной поддержке.
- Файловый менеджер Files из магазина приложений будет исправно работать, если включить поддержку длинных путей, и будет сообщать об ошибках при отключенной поддержке.
- Total Commander или встроенный файловый менеджер 7-Zip работают с длинными путями независимо от того, включена ли их поддержка в Windows.
То же самое касается не только файловых менеджеров, но и прикладных программ: текстовых, графических и видео редакторов и другого ПО.
Надеюсь, инструкция прояснила причины ошибки и возможные способы решения проблемы. Если же вопросы остаются — жду их в комментариях.
Большинство администраторов и пользователей Windows при работе с файлами, так или иначе сталкивались с ошибкой “path too long”. Эта ошибка возникает при превышении полного пути к файлу (вместе с его именем) значения 260 символов. Многие приложения, в том числе проводник Windows, неправильно работают с такими длинными именами файлов, оказываясь их открывать, перемещать и удалять. Это ограничение не файловой системы NTFS, а библиотеки Win32 API (подробнее о проблеме и обходных способах ее решения рассказано здесь).
В Windows 10 появилась возможность отключить ограничение на максимальную длину пути.
Отключить ограничение MAX_PATH можно двумя способами: с помощью редактора групповых политик или через реестр. Рассмотрим оба:
- Запустите консоль редактора локальной групповой политики, нажав Win+R и выполнив команду gpedit.msc
- Перейдите в раздел редактора Local Computer Policy -> Computer Configuration -> Administrative Templates -> System -> Filesystem -> NTFS (Конфигурация компьютера -> Административные шаблоны -> Система -> Файловая система -> NTFS)
- Откройте политику Enable NTFS long paths
- Включите политику, переведя ее в состояние Enabled
- Сохраните изменения
При использовании домашней версии Windows 10, в которой отсутствует редактор GPO, это же изменение можно внедрить с помощью редактора реестра.
-
- Запустите редактор реестра regedit.exe
- Перейдите в ветку HKLM\SYSTEM\CurrentControlSet\Control\FileSystem
- Создайте в данной ветке новый параметр типа Dword (32-bit) Value с именем LongPathsEnabled
- Чтобы отключить ограничение MAX_PATH, измените значение ключа на 1
Также вы можете включить эту функцию одной командой 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 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
Технически, некоторые из них не являются «чистокровными» файловыми менеджерами, но даже с их помощью можно выполнить, например, удаление или перемещение файлов/папок, которые демонстрируют ошибку «Слишком длинное имя файла». Не все они бесплатны — имейте это ввиду.
Время на прочтение4 мин
Количество просмотров80K
Многим пользователям ПК под управлением ОС 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. По мере поступления новых фактов и результатов экспериментов пост будет обновляться.
Спасибо за внимание!
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Quick Links
-
Windows Doesn’t Accept Long Paths by Default
-
Home Users: Remove the 260 Character Path Limit by Editing the Registry
-
Download Our One-Click Registry Hack
-
Pro and Enterprise Users: Remove the 260 Character Path Limit with the Local Group Policy Editor
Summary
- Before Windows 95, file names could only be 8 characters long, but now Windows has a 260 character limit for the full path of a file.
- The Windows 10 Anniversary Update allowed users to abandon the 260 character limit, but some older 32-bit applications may not support longer paths.
- Home users can remove the path limit by editing the registry, while Pro and Enterprise users can use the Local Group Policy Editor to disable the limit.
Windows Doesn’t Accept Long Paths by Default
Before Windows 95, Windows only allowed file names that were eight characters long, with a three-character file extension — commonly known as an 8.3 filename. Windows 95 abandoned that to allow long file names, but still limited the maximum path length (which includes the full folder path and the file name) to 260 characters. That limit has been in place ever since. If you’ve ever run into this limit, it was probably when you were trying to copy deep folder structures into other folders, such as when copying the contents of a hard drive to a folder on another drive. The Windows 10 Anniversary Update finally added the option to abandon that maximum path length.
There is one caveat. This new setting won’t necessarily work with every application out there, but it will work with most. Specifically, any modern applications should be fine, as should all 64-bit applications. Older 32-bit applications need to be manifested in order to work, which really just means that the developer has indicated in the application’s manifest file that the application supports longer paths. Most popular 32-bit apps should experience no problem. Still, you don’t risk anything by trying the setting out. If an application doesn’t work, the only thing that will happen is that it won’t be able to open or save files that are saved in places where the full path exceeds 260 characters.
Home Users: Remove the 260 Character Path Limit by Editing the Registry
If you have a Windows Home edition, you will have to edit the Windows Registry to make these changes. You can also do it this way if you have Windows Pro or Enterprise, but feel more comfortable working in the Registry than Group Policy Editor. (If you have Pro or Enterprise, though, we recommend using the easier Group Policy Editor, as described in the next section.)
Registry Editor is a powerful tool and misusing it can render your system unstable or even inoperable. This is a pretty simple hack and as long as you stick to the instructions, you shouldn’t have any problems. That said, if you’ve never worked with it before, consider reading about how to use the Registry Editor before you get started. And definitely back up the Registry (and your computer!) before making changes.
To get started, open the Registry Editor by hitting Start and typing «regedit.» Press Enter to open Registry Editor and give it permission to make changes to your PC.
In the Registry Editor, use the left sidebar to navigate to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
On the right, find a value named LongPathsEnabled and double-click it. If you don’t see the value listed, you’ll need to create it by right-clicking the FileSystem key, choosing New > DWORD (32-bit) Value, and then naming the new value LongPathsEnabled.
In the value’s properties window, change the value from 0 to 1 in the «Value data» box and then click OK.
You can now close Registry Editor and restart your computer (or sign out of your account and sign back on). If you ever want to reverse the changes, just head back to the LongPathsEnabled value, and change it from 1 back to 0.
Download Our One-Click Registry Hack
If you don’t feel like diving into the Registry yourself, we’ve created two downloadable registry hacks you can use. One hack removes the 260-character path limit, and the other hack restores the default limit. Both are included in the following ZIP file. Double-click the one you want to use, click through the prompts, and then restart your computer.
Long Path Names Hacks
These hacks are really just the FileSystem key, stripped down to the LongPathsEnabled value we described above, and then exported to a .REG file. Running the «Remove 260 Character Path Limit» hack sets the LongPathsEnabled value to 1. Running the «Restore 260 Character Path Limit (Default)» hack sets the value back to 0. And if you enjoy fiddling with the Registry, it’s worth taking the time to learn how to make your own Registry hacks.
Pro and Enterprise Users: Remove the 260 Character Path Limit with the Local Group Policy Editor
If you’re using Windows 10 Pro or Enterprise, the easiest way to disable the new app install notifications is by using the Local Group Policy Editor. It’s a pretty powerful tool, so if you’ve never used it before, it’s worth taking some time to learn what it can do. Also, if you’re on a company network, do everyone a favor and check with your admin first. If your work computer is part of a domain, it’s also likely that it’s part of a domain group policy that will supersede the local group policy, anyway.
In Windows 10 Pro or Enterprise, hit Start, type gpedit.msc, and press Enter.
In the Local Group Policy Editor, in the left-hand pane, drill down to Computer Configuration > Administrative Templates > System > Filesystem. On the right, find the «Enable win32 long paths» item and double-click it.
Select the «Enabled» option and then click «OK» in the properties window that opens.
You can now exit the Local Group Policy Editor and restart your computer (or sign out and back in) to allow the changes to take effect. If at any time you want to reverse the changes, just follow the same procedure and set that option back to «Disabled» or «Not Configured.»
The maximum path limit may not be something you’ve ever run into, but for some people, it can certainly be the occasional frustration. Windows 10 has finally added the ability to remove that limit. You just have to make a quick change to the Registry or Group Policy to make it happen.
