Слишком длинное имя файла или слишком длинный целевой путь — как исправить?
При копировании, создании, сохранении или перемещении файлов и папок в 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, в котором говорилось бы о не возможности скопировать (переместить) файл и о том, что имя одного из файлов слишком большое? Если да, то вы, наверное, задавались вопросом почему такое сообщение появилось (пример ниже на картинке). В данной статье будут объяснены особенности и тонкости ограничений, которые накладываются на длину имени файла в Windows.
В зависимости от структуры файловой системы, на длину имен файлов будут накладываться различные ограничения. Важно помнить и понимать, что имя файла складывается не только из расширения и того названия, которое вы дали ему при создании. Имя файла включает в себя всю необходимую операционной системе информацию для точной идентификации файла. Другими словами, имя файла включает в себя диск и все каталоги, внутри которых находится файл. Кроме того, имя может содержать различную системную информацию (и не обязательно, что вы ее будете где-либо видеть).
Примечание: Если вы не знали, то в большинстве файловых систем каталог — это разновидность файла, но с нулевым размером данных.
Существует множество различных файловых систем, каждая из который по-своему определяет структуру имени файла, включая способ построения пути к файлу. К примеру, на небольших usb устройствах хранения данных, обычно, используется система FAT32. А на оптических дисках (CD/DVD) обычно используется UDF или ISO 9660. На системных дисках последних ОС Windows используется файловая система NTFS, которая и станет предметом данной статьи (как наиболее распространенная для Windows).
Примечание: К примеру, на системных дисках с Windows XP, часто, использовалась файловая система FAT32. Однако, у нее был существенный (для сегодняшнего времени) недостаток — это ограничение на максимальный размер файла в 4 Гб. NTFS же не имеет такого ограничения.
Существует некоторая путаница в цифрах максимальной длины имени файла в файловой системе NTFS, которую вы можете обнаружить в различных источниках. Для начала, есть абсолютный предел, введенный Windows API, и он составляет 260 символов. Тем не менее, практический пределе меньше, чем 260 символов. Например, все имена должны иметь нулевой терминатор в конце. Обычно, этот маркер видит только Windows, но он все равно воспринимается, как один символ. Таким образом ,у вас есть только 259 доступных символов. Еще три символа используются для указания диска (например, C:\). Таким образом, реальный предел для имени, содержащего все каталоги, включая вложенные, и название самого файла вместе с расширением, уменьшается до 256 символов.
Примечание: Windows API — ядровой интерфейс, на котором строится вся операционная система и который используют программы.
Тем не менее, есть еще одна тонкость, связанная с тем, как Windows кодирует символы. Ни один индивидуальный объект (файл или каталог) не может иметь имя длиннее 255 символов. При этом, имя включает в себя пробелы и обратную косую черту, которая используется в качестве разделителей. Этот предел в 255 символов часто цитируется, как предел для названия отдельного файла, но, на практике, это относится только к именам файлов в корневом каталоге без каких-либо каталогов.
Существует и еще одно ограничение на длину имени файла, которое часто упускается из виду. Обычно, по умолчанию Windows поддерживает альтернативное имя файла, используя старую систему именования 8.3. Когда вы создаете папку, Windows будет резервировать 12 символов для альтернативного имени файла, оставляя 244 символов для всех содержащихся внутри объектов. Использование системы именования 8.3 можно отключить, но это может вызвать проблемы, при использовании старых 16-битных программ.
Примечание: Система именования 8.3 довольно проста. 8 — это количество символов наименования. «.» — это разделитель между названием и расширением. 3 — это количество символов для расширения. 12 — это 8 + 1 + 3.
Примечание: Подробнее о том, как отключить поддержку 8.3, смотрите информацию по адресу https://technet.microsoft.com/ru-ru/library/cc778996.aspx. Учтите, что вам потребуется редактировать реестр.
Существует так же механизм, который позволяет использовать более длинные имена файлов. Например, сетевым системам, порой, требуется больше гибкости в именах файлах. Поэтому, Windows API включает в себя специальную систему обращения для поддержки очень длинных Unicode имен в блоках по 255 символов. Эти длинные имена начинаются с префикса «\\?\» (без кавычек). Так что, если вы столкнулись с проблемой в имени файла, у которого длина слишком большая, то попробуйте использовать этот префикс в имени пути, например, «\\?\c:\file.txt» (без кавычек).
Большинство случаев ошибок слишком длинных путей имен файлов связаны именно с большим уровнем вложенности каталогов. Поэтому, знание об ограничениях позволит вам быть осторожными, при создании структуры ваших каталогов, и избежать проблем, связанных со слишком длинными именами.
☕ Понравился обзор? Поделитесь с друзьями!
-
Типы программ резервирования: какая разница между образом диска, файловым бэкапом и синхронизацией, и какой тип стоит использовать?
Фундаментальные статьи -
Что такое RSS и как его использовать?
Фундаментальные статьи -
Что означает портативное приложение (portable)?
Фундаментальные статьи -
IP-адрес и его особенности
Фундаментальные статьи -
Joomla 2.5 добавление пользователями материалов (статей) на сайт
Фундаментальные статьи -
Система поведенческого анализа антивируса простыми словами
Фундаментальные статьи
Добавить комментарий / отзыв
Ошибка «Слишком длинное имя файла» возникает при выполнении различных операций с папками и файлами на внутренних/внешних хранилищах в 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
Технически, некоторые из них не являются «чистокровными» файловыми менеджерами, но даже с их помощью можно выполнить, например, удаление или перемещение файлов/папок, которые демонстрируют ошибку «Слишком длинное имя файла». Не все они бесплатны — имейте это ввиду.
Перейти к содержанию
На чтение 3 мин Опубликовано Обновлено
При работе с операционной системой Windows важно соблюдать определенные требования и правила в именах файлов. Неверное имя файла может вызвать проблемы в работе компьютера, создать конфликты прикладных программ и затруднить работу пользователя. В данной статье рассмотрим основные ограничения и правила, а также рекомендации по выбору имен файлов в Windows.
Одним из главных ограничений в именах файлов является использование некоторых специальных символов, таких как знаки вопроса (?), знаки восклицания (!), знаки процента (%), знаки хеш-символа (#) и другие. Все эти символы имеют специальное значение для операционной системы, поэтому их использование в именах файлов может привести к ошибкам и нежелательным результатам.
Еще одним ограничением является максимальная длина имени файла — 255 символов. В данное число входят не только символы имени файла, но и символы пути к файлу. Для компьютеров с файловой системой NTFS максимальная длина пути составляет 32 767 символов, но большинство приложений и операционных систем не поддерживает такие длинные имена файлов и путей, поэтому рекомендуется придерживаться краткости.
Также стоит учитывать регистр символов в именах файлов. В операционной системе Windows регистрозависимые файловые системы (например, FAT и NTFS) учитывают регистр символов, то есть файл «file.txt» и «File.txt» будут считаться разными файлами. Это нужно учитывать при работе с файлами, чтобы избежать ошибок и путаницы.
Основные правила и ограничения имени файлов в Windows
Вот основные правила и ограничения, которые следует учитывать при именовании файлов в Windows:
Правило / Ограничение | Описание |
---|---|
Длина имени | Имя файла не должно превышать 255 символов. Это включает в себя имя файла и его расширение. |
Разрешенные символы | Имя файла может содержать латинские буквы (A-Z, a-z), цифры (0-9), а также специальные символы, такие как точка (.), тире (-) и подчеркивание (_). |
Запрещенные символы | Некоторые символы запрещены в именах файлов, такие как знаки вопроса (?), звездочка (*), двоеточие (:), вертикальная черта (|), обратная косая черта (\), кавычки («»), угловые скобки (< >) и другие. |
Регистр символов | Имена файлов в Windows регистрозависимы, то есть различают между большими и малыми буквами. Например, файл «File.txt» и «file.txt» будут считаться различными файлами. |
Зарезервированные имена | Существуют зарезервированные имена файлов, которые нельзя использовать, такие как «CON», «PRN», «NUL», «COM1», «LPT1» и другие. Использование этих имен может вызвать ошибки при работе операционной системы. |
Обращайте внимание на эти правила и ограничения, чтобы избежать проблем при работе с файлами в Windows. Соблюдение этих правил обеспечивает безопасность и стабильность работы операционной системы.
If you really mean file name, I believe the limit is still «commonly» 255 characters, see the third quoted paragraph («The Windows API has many…») below.
If you mean file path: You can enable the «Win32 long paths» option. From this Microsoft document:
Maximum Path Length Limitation
In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters. A local path is structured in the following order: drive letter, colon, backslash, name components separated by backslashes, and a terminating null character. For example, the maximum path on drive D is «D:\some 256-character path string<NUL>
» where «<NUL>
» represents the invisible terminating null character for the current system codepage. (The characters < > are used here for visual clarity and cannot be part of a valid path string.)
Note
File I/O functions in the Windows API convert «
/
» to «\
» as part of converting the name to an NT-style name, except when using the «\\?\
» prefix as detailed in the following sections.
The Windows API has many functions that also have Unicode versions to permit an extended-length path for a maximum total path length of 32,767 characters. This type of path is composed of components separated by backslashes, each up to the value returned in the lpMaximumComponentLength parameter of the GetVolumeInformation function (this value is commonly 255 characters). To specify an extended-length path, use the «\\?\
» prefix. For example, «\\?\D:\very long path
«.
Note
The maximum path of 32,767 characters is approximate, because the «
\\?\
» prefix may be expanded to a longer string by the system at run time, and this expansion applies to the total length.
The «\\?\
» prefix can also be used with paths constructed according to the universal naming convention (UNC). To specify such a path using UNC, use the «\\?\UNC\
» prefix. For example, «\\?\UNC\server\share
«, where «server» is the name of the computer and «share» is the name of the shared folder. These prefixes are not used as part of the path itself. They indicate that the path should be passed to the system with minimal modification, which means that you cannot use forward slashes to represent path separators, or a period to represent the current directory, or double dots to represent the parent directory. Because you cannot use the «\\?\
» prefix with a relative path, relative paths are always limited to a total of MAX_PATH characters.
There is no need to perform any Unicode normalization on path and file name strings for use by the Windows file I/O API functions because the file system treats path and file names as an opaque sequence of WCHARs. Any normalization that your application requires should be performed with this in mind, external of any calls to related Windows file I/O API functions.
When using an API to create a directory, the specified path cannot be so long that you cannot append an 8.3 file name (that is, the directory name cannot exceed MAX_PATH minus 12).
The shell and the file system have different requirements. It is possible to create a path with the Windows API that the shell user interface is not able to interpret properly.
Enable Long Paths in Windows 10, Version 1607, and Later
Starting in Windows 10, version 1607, MAX_PATH limitations have been removed from common Win32 file and directory functions. However, you must opt-in to the new behavior.
To enable the new long path behavior, both of the following conditions must be met:
- The registry key
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem
LongPathsEnabled
(Type: REG_DWORD) must exist and be set to 1. The key’s value will be cached by the system (per process) after the first call to an affected Win32 file or directory function (see below for the list of functions). The registry key will not be reloaded during the lifetime of the process. In order for all apps on the system to recognize the value of the key, a reboot might be required because some processes may have started before the key was set.
Note
This registry key can also be controlled via Group Policy at Computer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths.
-
The application manifest must also include the longPathAware element.
<application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings xmlns:ws2="https://schemas.microsoft.com/SMI/2016/WindowsSettings"> <ws2:longPathAware>true</ws2:longPathAware> </windowsSettings> </application>
These are the directory management functions that no longer have MAX_PATH restrictions if you opt-in to long path behavior: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.
These are the file management functions that no longer have MAX_PATH restrictions if you opt-in to long path behavior: 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.
Note that while that article says the Group Policy editor’s setting is «Enable NTFS long paths», that’s no longer the case; it’s «Enable Win32 long paths» now: