Смотрите также Как в Windows 10 включить поддержку пути к файлам длиной более 260 символов.
Во всех операционных системах и для всех файловых систем существуют определённые лимиты на:
- размер имени файла
- на полный путь файла (который включает папки и подпапки)
Операционная система Windows не является исключением, в ней длина имени файла или папки ограничена 255 символами, а вся длина пути ограничена примерно 32,000 символами.
Имеется ряд исключений, когда разрешённая длина файла должна быть меньше этих значений:
- предыдущие версии Windows
- сетевые диски
- оптические диски CD и DVD
К сожалению, Windows весьма «молчалив» в ситуациях, когда возникают проблемы с длиной имени файла или пути на сетевых носителях. В результате, часть файлов может отображаться нормально, а часть отсутствовать. Если файлов много, то не всегда просто понять, все ли они на месте. Признаками того, что некоторые файлы на сетевой папке имеют слишком длинное имя является:
- отсутствует файл, который точно должен быть или который виден при подключении диска напрямую (а не через сеть)
- при создании файла возникает ошибка, что такой файл уже существует, хотя его не видно
При поиске по файлам средствами ОС, эти файлы также недоступны для индексации и поиска по ним.
Все программы, от стандартного проводника Windows до сторонних файловых менеджеров не способны увидеть эти файлы со слишком длинными именами, при этом каких-либо ошибок не возникает.
Подтвердить проблему слишком длинного имени на сетевом носителе можно командой вида:
dir "\путьдопапки"
Например команда:
dir "\VBOXSVRShareАрхив работУП"
вызывает следующую ошибку из-за того, что в папке имеется файл со слишком длинным именем:
Каталог: \VBOXSVRShareАрхив работУП Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 24.08.2010 17:29 Общая часть d----- 17.02.2019 16:10 Особенная часть d----- 01.11.2018 10:24 Чужое dir : Параметр задан неверно. строка:1 знак:1 + dir "\VBOXSVRShareАрхив работУП" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ReadError: (\VBOXSVRShareАрхив работУП:String) [Get-ChildItem], IOException + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand
Если вы работаете с сетевым диском и он подключён к Linux, то вам может помочь инструкция «Как найти имена файлов, чья длина превышает определённое значение».
В остальных случаях, попробуйте следующие советы:
1. (если слишком длинный путь до файла) Вначале скопируйте папку на более высокие уровни в windows эксплорере и затем переместите их на ваш локальный компьютер
2. (если имена файлов слишком длинные) Вначале попробуйте поместить их в архив программами zip/rar/7z и затем скопируйте файл архива на свой локальный компьютер и извлеките его содержимое
3. Попробуйте встроенную программу ROBOCOPY:
robocopy /E ИСТОЧНИК НАЗНАЧЕНИЕ
4. Попробуйте перед путём добавить \?
\?C:SomeReallyLongPath
5. Используйте сторонне программное обеспечение (о нём далее)
FastCopy — это проект с открытым исходным кодом на C, написанный SHIROUZU Hiroaki и это «Самое быстрое программное обеспечение для копирования/удаления файлов на Windows.» Программа поддеррживает UNICODE и более чем MAX_PATH (260 символов) в путях имён файлов.
Если имеются сотни путей, которые слишком долго исправлять, то используйте инструмент «Path Tool Long Auto Fixer».
Связанные статьи:
- Как в Windows 10 включить поддержку пути к файлам длиной более 260 символов (93.2%)
- Как переименовать файл или папку в PowerShell (64.4%)
- Создание жёстких и мягких ссылок с помощью PowerShell (64.4%)
- Как создать общую сетевую папку на Windows (56.8%)
- Как подключиться к сетевой папке в Windows (SMB) (56.8%)
- Как ограничить скорость загрузки обновлений Windows 10 (RANDOM — 50%)
-
Категория ~
Фундаментальные статьи -
– Автор:
Игорь (Администратор)
Вы когда-нибудь сталкивались с сообщением об ошибке в 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 добавление пользователями материалов (статей) на сайт
Фундаментальные статьи -
Система поведенческого анализа антивируса простыми словами
Фундаментальные статьи
Добавить комментарий / отзыв
I’m designing a database table which will hold filenames of uploaded files. What is the maximum length of a filename in NTFS as used by Windows XP or Vista?
asked Nov 5, 2008 at 16:39
GateKillerGateKiller
73k72 gold badges170 silver badges204 bronze badges
9
Individual components of a filename (i.e. each subdirectory along the path, and the final filename) are limited to 255 characters, and the total path length is limited to approximately 32,000 characters.
However, on Windows, you can’t exceed MAX_PATH
value (259 characters for files, 248 for folders). See http://msdn.microsoft.com/en-us/library/aa365247.aspx for full details.
Louis CAD
10.7k2 gold badges37 silver badges57 bronze badges
answered Nov 5, 2008 at 16:41
Adam RosenfieldAdam Rosenfield
384k96 gold badges510 silver badges586 bronze badges
13
It’s 257 characters.
To be precise:
NTFS itself does impose a maximum filename-length of several thousand characters (around 30’000 something).
However, Windows imposes a 260 maximum length for the Path+Filename. The drive+folder takes up at least 3 characters, so you end up with 257.
answered Nov 5, 2008 at 16:45
5
This is what the «Unhandled exception» says on framework 4.5 when trying to save a file with a long filename:
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
Samuel Liew♦
75.1k106 gold badges159 silver badges249 bronze badges
answered Apr 12, 2013 at 12:29
199 on Windows XP NTFS, I just checked.
This is not theory but from just trying on my laptop. There may be mitigating effects, but it physically won’t let me make it bigger.
Is there some other setting limiting this, I wonder? Try it for yourself.
answered Nov 5, 2008 at 16:48
dovedove
20.3k14 gold badges87 silver badges107 bronze badges
12
The length in NTFS is 255. The NameLength
field in the NTFS $Filename
attribute is a byte with no offset; this yields a range of 0-255.
The file name iself can be in different «namespaces». So far there are: POSIX, WIN32, DOS and (WIN32DOS — when a filename can be natively a DOS name). (Since the string has a length, it could contain but that would yield to problems and is not in the namespaces above.)
Thus the name of a file or directory can be up to 255 characters. When specifying the full path under Windows, you need to prefix the path with \? (or use \?UNCservershare for UNC paths) to mark this path as an extended-length one (~32k characters). If your path is longer, you will have to set your working directory along the way (ugh — side effects due to the process-wide setting).
Jesper
1,58111 silver badges10 bronze badges
answered Aug 24, 2010 at 13:51
1
According to MSDN, it’s 260 characters. It includes "<NUL>"
-the invisible terminating null character, so the actual length is 259.
But read the article, it’s a bit more complicated.
answered Nov 5, 2008 at 16:42
KibbeeKibbee
64.9k27 gold badges141 silver badges181 bronze badges
1
answered Nov 5, 2008 at 16:40
warrenwarren
31.8k21 gold badges86 silver badges121 bronze badges
I’m adding this to the above approved answer.
TO BE CLEAR, the reason people believe it to be 255-260 characters is because that is all that Windows Explorer supports. It will error out doing something like a file copy on filenames longer than that. However, a program can read and write much longer filenames (which is how you get to lengths that Explorer complains about in the first place). Microsoft’s «recommended fix» in situations like this is to open the file in the original program that wrote it and rename it.
answered Oct 9, 2012 at 14:16
std»OrgnlDavestd»OrgnlDave
3,8721 gold badge24 silver badges34 bronze badges
2
This part of the official documentation says clearly that it’s 255 Unicode characters for NTFS, exFAT and FAT32, and 127 Unicode or 254 ASCII characters for UDF.
Apart from that, the maximum path name length is always 32,760 Unicode characters, with each path component no more than 255 characters.
answered Aug 9, 2018 at 20:31
cawcaw
30.7k60 gold badges180 silver badges290 bronze badges
1
According to the new Windows SDK documentation (8.0) it seems that a new path limit is provided. There is a new set of path handling functions and an definition of PATHCCH_MAX_CCH like follows:
// max # of characters we support using the "\?" syntax
// (0x7FFF + 1 for NULL terminator)
#define PATHCCH_MAX_CCH 0x8000
answered Sep 11, 2013 at 17:19
1
255 chars, though the complete path should not be longer than that as well. There is a nice table over at Wikipedia about this: http://en.wikipedia.org/wiki/Filename.
answered Nov 5, 2008 at 16:44
Svante SvensonSvante Svenson
12.3k4 gold badges41 silver badges45 bronze badges
In Windows 11 (In NTFS drive) is 236 with extension
For testing rename a file with below name and try to add one character more:
1234567890123456789010123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.txt
answered Oct 21, 2022 at 4:59
MehdiMehdi
7432 gold badges8 silver badges20 bronze badges
238!
I checked it under Win7 32 bit with the following bat script:
set "fname="
for /l %%i in (1, 1, 27) do @call :setname
@echo %fname%
for /l %%i in (1, 1, 100) do @call :check
goto :EOF
:setname
set "fname=%fname%_123456789"
goto :EOF
:check
set "fname=%fname:~0,-1%"
@echo xx>%fname%
if not exist %fname% goto :eof
dir /b
pause
goto :EOF
answered May 28, 2015 at 14:08
SzBSzB
9679 silver badges12 bronze badges
2
Actually it is 256, see File System Functionality Comparison, Limits.
To repeat a post on http://fixunix.com/microsoft-windows/30758-windows-xp-file-name-length-limit.html
«Assuming we’re talking about NTFS and not FAT32, the «255 characters
for path+file» is a limitation of Explorer, not the filesystem itself.
NTFS supports paths up to 32,000 Unicode characters long, with each
component up to 255 characters.Explorer -and the Windows API- limits you to 260 characters for the
path, which include drive letter, colon, separating slashes and a
terminating null character. It’s possible to read a longer path in
Windows if you start it with a\
«
If you read the above posts you’ll see there is a 5th thing you can be certain of:
Finding at least one obstinate computer user!
user692942
16.1k7 gold badges76 silver badges172 bronze badges
answered Nov 20, 2009 at 17:01
2
I cannot create a file with the name+period+extnesion in WS 2012 Explorer longer than 224 characters. Don’t shoot the messenger!
In the CMD of the same server I cannot create a longer than 235 character name:
The system cannot find the path specified.
The file with a 224 character name created in the Explorer cannot be opened in Notepad++ — it just comes up with a new file instead.
answered Feb 23, 2018 at 21:12
ajehajeh
2,6002 gold badges31 silver badges61 bronze badges
1
I’m designing a database table which will hold filenames of uploaded files. What is the maximum length of a filename in NTFS as used by Windows XP or Vista?
asked Nov 5, 2008 at 16:39
GateKillerGateKiller
73k72 gold badges170 silver badges204 bronze badges
9
Individual components of a filename (i.e. each subdirectory along the path, and the final filename) are limited to 255 characters, and the total path length is limited to approximately 32,000 characters.
However, on Windows, you can’t exceed MAX_PATH
value (259 characters for files, 248 for folders). See http://msdn.microsoft.com/en-us/library/aa365247.aspx for full details.
Louis CAD
10.7k2 gold badges37 silver badges57 bronze badges
answered Nov 5, 2008 at 16:41
Adam RosenfieldAdam Rosenfield
384k96 gold badges510 silver badges586 bronze badges
13
It’s 257 characters.
To be precise:
NTFS itself does impose a maximum filename-length of several thousand characters (around 30’000 something).
However, Windows imposes a 260 maximum length for the Path+Filename. The drive+folder takes up at least 3 characters, so you end up with 257.
answered Nov 5, 2008 at 16:45
5
This is what the «Unhandled exception» says on framework 4.5 when trying to save a file with a long filename:
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
Samuel Liew♦
75.1k106 gold badges159 silver badges249 bronze badges
answered Apr 12, 2013 at 12:29
199 on Windows XP NTFS, I just checked.
This is not theory but from just trying on my laptop. There may be mitigating effects, but it physically won’t let me make it bigger.
Is there some other setting limiting this, I wonder? Try it for yourself.
answered Nov 5, 2008 at 16:48
dovedove
20.3k14 gold badges87 silver badges107 bronze badges
12
The length in NTFS is 255. The NameLength
field in the NTFS $Filename
attribute is a byte with no offset; this yields a range of 0-255.
The file name iself can be in different «namespaces». So far there are: POSIX, WIN32, DOS and (WIN32DOS — when a filename can be natively a DOS name). (Since the string has a length, it could contain but that would yield to problems and is not in the namespaces above.)
Thus the name of a file or directory can be up to 255 characters. When specifying the full path under Windows, you need to prefix the path with \? (or use \?UNCservershare for UNC paths) to mark this path as an extended-length one (~32k characters). If your path is longer, you will have to set your working directory along the way (ugh — side effects due to the process-wide setting).
Jesper
1,58111 silver badges10 bronze badges
answered Aug 24, 2010 at 13:51
1
According to MSDN, it’s 260 characters. It includes "<NUL>"
-the invisible terminating null character, so the actual length is 259.
But read the article, it’s a bit more complicated.
answered Nov 5, 2008 at 16:42
KibbeeKibbee
64.9k27 gold badges141 silver badges181 bronze badges
1
answered Nov 5, 2008 at 16:40
warrenwarren
31.8k21 gold badges86 silver badges121 bronze badges
I’m adding this to the above approved answer.
TO BE CLEAR, the reason people believe it to be 255-260 characters is because that is all that Windows Explorer supports. It will error out doing something like a file copy on filenames longer than that. However, a program can read and write much longer filenames (which is how you get to lengths that Explorer complains about in the first place). Microsoft’s «recommended fix» in situations like this is to open the file in the original program that wrote it and rename it.
answered Oct 9, 2012 at 14:16
std»OrgnlDavestd»OrgnlDave
3,8721 gold badge24 silver badges34 bronze badges
2
This part of the official documentation says clearly that it’s 255 Unicode characters for NTFS, exFAT and FAT32, and 127 Unicode or 254 ASCII characters for UDF.
Apart from that, the maximum path name length is always 32,760 Unicode characters, with each path component no more than 255 characters.
answered Aug 9, 2018 at 20:31
cawcaw
30.7k60 gold badges180 silver badges290 bronze badges
1
According to the new Windows SDK documentation (8.0) it seems that a new path limit is provided. There is a new set of path handling functions and an definition of PATHCCH_MAX_CCH like follows:
// max # of characters we support using the "\?" syntax
// (0x7FFF + 1 for NULL terminator)
#define PATHCCH_MAX_CCH 0x8000
answered Sep 11, 2013 at 17:19
1
255 chars, though the complete path should not be longer than that as well. There is a nice table over at Wikipedia about this: http://en.wikipedia.org/wiki/Filename.
answered Nov 5, 2008 at 16:44
Svante SvensonSvante Svenson
12.3k4 gold badges41 silver badges45 bronze badges
In Windows 11 (In NTFS drive) is 236 with extension
For testing rename a file with below name and try to add one character more:
1234567890123456789010123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.txt
answered Oct 21, 2022 at 4:59
MehdiMehdi
7432 gold badges8 silver badges20 bronze badges
238!
I checked it under Win7 32 bit with the following bat script:
set "fname="
for /l %%i in (1, 1, 27) do @call :setname
@echo %fname%
for /l %%i in (1, 1, 100) do @call :check
goto :EOF
:setname
set "fname=%fname%_123456789"
goto :EOF
:check
set "fname=%fname:~0,-1%"
@echo xx>%fname%
if not exist %fname% goto :eof
dir /b
pause
goto :EOF
answered May 28, 2015 at 14:08
SzBSzB
9679 silver badges12 bronze badges
2
Actually it is 256, see File System Functionality Comparison, Limits.
To repeat a post on http://fixunix.com/microsoft-windows/30758-windows-xp-file-name-length-limit.html
«Assuming we’re talking about NTFS and not FAT32, the «255 characters
for path+file» is a limitation of Explorer, not the filesystem itself.
NTFS supports paths up to 32,000 Unicode characters long, with each
component up to 255 characters.Explorer -and the Windows API- limits you to 260 characters for the
path, which include drive letter, colon, separating slashes and a
terminating null character. It’s possible to read a longer path in
Windows if you start it with a\
«
If you read the above posts you’ll see there is a 5th thing you can be certain of:
Finding at least one obstinate computer user!
user692942
16.1k7 gold badges76 silver badges172 bronze badges
answered Nov 20, 2009 at 17:01
2
I cannot create a file with the name+period+extnesion in WS 2012 Explorer longer than 224 characters. Don’t shoot the messenger!
In the CMD of the same server I cannot create a longer than 235 character name:
The system cannot find the path specified.
The file with a 224 character name created in the Explorer cannot be opened in Notepad++ — it just comes up with a new file instead.
answered Feb 23, 2018 at 21:12
ajehajeh
2,6002 gold badges31 silver badges61 bronze badges
1
Давно известен тот факт, что Проводник Windows и большинство Windows-приложений не могут работать с файлами и папками, длина пути к которым превышает 260 символов. И это — лишь программное ограничение на уровне Win32 API, известное также как MAX_PATH, тогда как файловая система NTFS сама по себе допускает до 32767 символов в адресе объекта файловой системы, чем успешно пользовались сторонние приложения, работавшие в обход стандартного API, например, FAR и Total Commander.
Также данное ограничение не касалось работы с файлами при сетевом доступе, что приводило к казусным ситуациям: рядовой пользователь в расшаренной папке может создавать и изменять файлы и папки, администратор через Windows Explorer — получает отказ доступа. Причём данное ограничение имело место не только в Windows 7/8/8.1 и более ранних ОС, но и в новейшей Windows 10.
Для обхода ограничения применялся, в зависимости от ситуации и уровня подготовки сидящего за ПК пользователя, целый ряд различных приёмов: символические ссылки, ручное сокращение количества символов, создание виртуальных дисков и прочее.
И вот, как сообщает ряд тестеров регулярно выпускаемых закрытых сборок Windows 10, компания Microsoft, наконец, снизошла до исправления этого недостатка и выпуска исправления. Точнее — реализации настройки, которую должен будет включить сам пользователь. В шаблонах групповых политик появился соответствующий параметр «Включение длинных адресов NTFS» (Конфигурация компьютера -> Административные шаблоны -> Система -> Файловая система -> NTFS).
рекомендации
3070 Gigabyte Gaming за 50 тр с началом
Выбираем игровой ноут: на что смотреть, на чем сэкономить
3070 Gainward Phantom дешевле 50 тр
13700K дешевле 40 тр в Регарде
Ищем PHP-программиста для апгрейда конфы
3070 дешевле 50 тр в Ситилинке
MSI 3050 за 25 тр в Ситилинке
3060 Gigabyte Gaming за 30 тр с началом
13600K дешевле 30 тр в Регарде
4080 почти за 100тр — дешевле чем по курсу 60
12900K за 40тр с началом в Ситилинке
RTX 4090 за 140 тр в Регарде
Компьютеры от 10 тр в Ситилинке
3060 Ti Gigabyte за 42 тр в Регарде
Единственное, что огорчает — Редактор групповых политик (gpedit.msc) отсутствует в редакциях Windows 10, отличных от «Профессиональная» и «Корпоративная» (хотя существуют неофициальные и не совсем легальные способы обойти это ограничение). Впрочем, необходимые ключи в реестре наверняка будут найдены. Как подсказывает один из читателей, это параметр LongPathsEnabled (тип DWORD), расположенный в реестре по адресу HKEY_LOCAL_MACHINESystemCurrentControlSetPolicies.
Слишком длинное имя файла или слишком длинный целевой путь — как исправить?
При копировании, создании, сохранении или перемещении файлов и папок в 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_MACHINESYSTEMCurrentControlSetControlFileSystem
- В правой панели редактора реестра дважды нажмите по параметру с именем LongPathsEnabled и присвойте значение 1 вместо 0 для этого параметра.
- Закройте редактор реестра, перезагрузите компьютер.
В редакторе локальной групповой политики
В Windows Pro и Enterprise можно использовать редактор локальной групповой политики:
- Нажмите клавиши Win+R на клавиатуре, введите gpedit.msc в диалоговом окне «Выполнить» и нажмите Enter.
- Перейдите к разделу Конфигурация компьютера — Административные шаблоны — Система — Файловая система.
- Дважды нажмите по параметру «Включить длинные пути Win32».
- Установите значение «Включено» для этого параметра, примените настройки.
- Закройте редактор локальной групповой политики и перезагрузите компьютер.
Готово, теперь поддержка длинных путей в Windows включена, однако это не означает, что ошибки, с ними связанные, исчезнут.
Почему ошибки длинных путей появляются, несмотря на включенную поддержку длинных путей
Даже если вы включите поддержку длинных путей к папкам и файлам в Windows 11/10, при действиях с такими файлами в проводнике и некоторых программах вы продолжите получать ошибки вида «Слишком длинный целевой путь. Имена файлов слишком длинны для помещения в эту целевую папку» или «Указано неправильное или слишком длинное имя файла», также будут недоступны некоторые действия в папках, имеющих длинный путь.
Причина этого — поддержка длинных путей требуется не только на уровне системы, но и в самой программе, которая работает с этими путями, в качестве примера:
- Проводник не сможет полноценно работать с длинными путями даже при включенной поддержке.
- Файловый менеджер Files из магазина приложений будет исправно работать, если включить поддержку длинных путей, и будет сообщать об ошибках при отключенной поддержке.
- Total Commander или встроенный файловый менеджер 7-Zip работают с длинными путями независимо от того, включена ли их поддержка в Windows.
То же самое касается не только файловых менеджеров, но и прикладных программ: текстовых, графических и видео редакторов и другого ПО.
Надеюсь, инструкция прояснила причины ошибки и возможные способы решения проблемы. Если же вопросы остаются — жду их в комментариях.
Если вы когда-либо видели эту проблему, это, вероятно, было простым решением для вас. Если вы видели эту ошибку более двух раз, то вы также знаете, что иногда это может быть сложной проблемой.
Будем надеяться, что вы столкнетесь только с набором легких исправлений, но мы подготовим вас к менее простым, гарантированно исправным исправлениям.
Существует большая история длины файлов, что является проблемой для операционных систем, таких как Windows. Было время, когда вы не могли иметь имена файлов длиннее 8 символов плюс 3-символьное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc. Это было ограничение в отношении дизайна файловой системы.
Все стало лучше, когда вышли новые версии Windows. Мы перешли от старой ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к тому, что имя файла может быть длиной 255 символов, а длина пути к файлу потенциально может достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?
В Windows есть вещи, известные как системные переменные. Это переменные, от которых зависит функционирование Windows, потому что Windows всегда будет знать, что означают переменные и где они находятся, даже когда мы перемещаем биты и байты повсюду. Системная переменная MAX_PATH — это та, которая ограничивает имена файлов и пути к файлам до 260 символов.
Будучи переменной, вы думаете, мы могли бы изменить это. Нет, мы не должны. Это все равно что выдернуть нитку из свитера. Как только одна системная переменная изменяется, другие системные переменные и зависимые от них компоненты начинают распадаться.
Настройка Windows 10 на обработку длинных путей к файлам
Если вы знаете, что будете часто использовать длинные пути к файлам и длинные имена файлов, вам будет проще заставить Windows работать. Нет смысла использовать PowerShell для выполнения работы каждый день.
Есть два способа сделать это. Один предназначен для пользователей Windows 10 Home, а другой — для пользователей Windows 10 Pro или Enterprise. Эти методы могут работать для Windows 8.1 или более ранней версии, но мы не можем гарантировать это.
Параметры для Windows 10 Home
Чтобы Windows 10 Home принимала длинные пути к файлам, нам нужно открыть редактор реестра . Если вы раньше не работали в редакторе реестра, будьте осторожны. Случайное удаление или изменение здесь может помешать работе Windows полностью.
Всегда делайте резервную копию вашего реестра, прежде чем вносить какие-либо изменения. Узнайте все, что вам нужно знать об этом, в нашем окончательном руководстве по резервному копированию и восстановлению реестра Windows.
Открыв редактор реестра и сделав резервную копию, перейдите в папку HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem
и найдите ключ LongPathsEnabled.
Дважды щелкните LongPathsEnabled. Убедитесь, что в поле Значение данные: номер 1 указан. Нажмите OK, чтобы подтвердить изменения.
Выйдите из редактора реестра, и теперь вы сможете работать с безумными длинными путями к файлам.
Параметры для Windows 10 Pro или Enterprise
Чтобы позволить Windows 10 Pro или Enterprise использовать длинные пути к файлам, мы будем использовать редактор локальной групповой политики. Это инструмент, который позволяет нам устанавливать политики в отношении работы Windows на компьютере и на уровне пользователей.
Откройте редактор групповой политики, перейдя в меню «Пуск» и набрав gpedit
. Лучший результат должен быть Изменить групповую политику. Дважды щелкните по этому.
После открытия редактора групповой политики перейдите к Конфигурация компьютера → Административные шаблоны → Система → Файловая система. Там вы увидите политику включения длинных путей Win32.
Дважды щелкните по нему, чтобы изменить параметр политики. Измените его с «Отключено» на «Включено», затем нажмите кнопку «ОК», чтобы зафиксировать изменение.
Политика может не вступить в силу сразу. Вы можете принудительно обновить групповую политику.
Как временно исправить проблему с файлами?
Легкое Исправление
Если вам повезет, вы получите ошибку и точно знаете, какое имя файла вызывает проблему. Или, по крайней мере, где найти файл. Может быть, у вас есть имя файла, которое выглядит примерно так:
C:UserguymcDocumentsMy Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx
Понятно, кто в этом случае виновник. Найдите файл в проводнике Windows или в проводнике, как он называется в Windows 10, нажмите один раз на него, нажмите F2, чтобы переименовать его, и измените это глупое имя файла на более разумное. Задача решена.
Менее простые исправления
Не всегда легко решить эту проблему. Иногда вы не можете изменить имена файлов или каталогов по любой причине.
Следующие решения помогут вам. Их несложно сделать.
Перемещение, удаление или копирование файлов или каталогов с помощью PowerShell
Иногда вы получаете сообщение об ошибке при попытке переместить, удалить или скопировать каталоги, где количество символов для пути к файлу превышает 260.
Обратите внимание, что слова каталог и папка являются взаимозаменяемыми. Мы будем использовать «каталог» в будущем. Следующие командлеты PowerShell также можно использовать для файлов.
Возможно, путь к файлу выглядит примерно так:
C:UsersguymcDocumentsThisIsExactlyThePreciseDirectoryPathThatINeedToHaveToKeepMyFilesSortedInAMannerThatMakesSenseToMeSoLetsPretendThisIsAnActualFilepathThatYouMightAlsoHaveOnYourWindowsComputerAndNotOverThinkItDocument.docx
Этот путь к файлу составляет 280 символов. Поэтому мы не можем скопировать каталог оттуда куда-либо еще с помощью обычного метода копирования-вставки. Мы получаем ошибку Destination Path Too Long.
Давайте предположим, что по какой-то причине мы не можем переименовать каталоги, в которые вложен файл. Что мы делаем?
Когда откроется PowerShell, вы окажетесь в корне своего пользовательского каталога. Продолжайте, предполагая, что C:Usersguymc — ваш пользовательский каталог.
Каталог с именем This находится в каталоге Documents. Чтобы перейти в каталог Documents, мы используем команду cd Documents
.
Вы увидите быстрое изменение текущего каталога на C:UsersguymcDocuments. Это хорошо. Мы работаем ближе к каталогам, которые облегчат жизнь.
Копирование каталога с использованием Copy-Item
Мы хотим скопировать каталог This и его содержимое в ThatNewFolder. Давайте используем команду PowerShell Copy-Item с параметрами -Destination и -Recurse.
-Destination сообщает PowerShell, где мы хотим, чтобы копия находилась. -Recurse говорит PowerShell скопировать все элементы внутри к месту назначения. Копирование оставляет оригиналы там, где они есть, и делает все новые в месте назначения.
Copy-Item This -Destination ThatNewFolder -Recurse
Переместить каталог с помощью Move-Item
Допустим, мы хотим переместить каталог This, а также все каталоги и файлы в нем, в ThatNewFolder. Перемещение не оставляет оригинал на месте.
Мы можем использовать команду PowerShell Move-Item с параметрами -Path и -Destination. -Path определяет элемент, который мы хотим переместить, и -Destination сообщает PowerShell, где мы хотим его получить.
Команда поместит это в ThatNewFolder. Он также будет перемещать все, что находится внутри этого каталога. Move-Item может использоваться для перемещения файлов или каталогов, и он работает независимо от пути к файлу или длины имени файла.
Move-Item -Path This -Destination ThatNewFolder
Чтобы убедиться, что это работает, используйте команду cd ThatNewFolder
, чтобы войти в ThatNewFolder. Затем используйте команду dir
для вывода списка каталогов в ThatNewFolder. Вы увидите, что этот каталог находится там.
Удалить каталог с помощью Remove-Item
Если мы хотим удалить этот каталог и все в нем, мы используем команду Remove-Item.
Командлет Remove-Item обладает некоторой встроенной безопасностью, которая затрудняет удаление каталога с содержимым внутри него. В нашем примере мы знаем, что хотим удалить все, поэтому мы будем использовать параметры -Recurse, чтобы заставить его удалять все внутри, и -Force, чтобы он делал это, не спрашивая нас, уверены ли мы в каждом элементе внутри.
Имейте в виду! Восстановить что-либо удаленное таким образом было бы чрезвычайно сложно.
Remove-Item This -Recurse -Force
Вы можете снова использовать команду dir, чтобы убедиться, что она пропала.
Вот и все
Существуют и другие способы обхода длинных имен файлов и путей к файлам, но то, что мы здесь рассмотрели, — это самые простые и эффективные методы.
В выпусках Windows до Windows 10 версии 1607 максимальная длина пути составляет MAX_PATH, что составляет 260 символов. В более поздних версиях Windows для снятия ограничения требуется изменение раздела реестра или использование инструмента групповой политики.
Windows 10 допускает пути к файлам длиной более 260 символов (с помощью взлома реестра) Начиная с Windows 95, Microsoft разрешала пути к файлам только до 260 символов (что, честно говоря, было намного лучше, чем ограничение в 8 символов ранее). Теперь, настроив реестр, вы можете превысить эту сумму в Windows 10.
Какова максимальная длина пути в Windows?
В Windows API (за некоторыми исключениями, обсуждаемыми в следующих параграфах) максимальная длина пути составляет MAX_PATH, которая определяется как 260 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имени, разделенные обратными косыми чертами, и завершающий нулевой символ.
Какова максимальная длина пути к файлу?
Максимальная длина пути (имя файла и его путь к каталогу), также известная как MAX_PATH, определена 260 символами.
Может ли путь к файлу быть слишком длинным?
С юбилейным обновлением Windows 10 вы наконец можете отказаться от ограничения максимального пути в 260 символов в Windows. … Windows 95 отказалась от этого, чтобы разрешить длинные имена файлов, но все же ограничила максимальную длину пути (которая включает полный путь к папке и имя файла) до 260 символов.
Как мне узнать длину моего пути?
Проверка длины пути 1.11.
Чтобы запустить средство проверки длины пути с помощью графического интерфейса, запустите PathLengthCheckerGUI.exe. После открытия приложения укажите корневой каталог, в котором хотите выполнить поиск, и нажмите большую кнопку «Получить длину пути». PathLengthChecker.exe является альтернативой графическому интерфейсу пользователя и включен в ZIP-файл.
Как увеличить максимальный путь в Windows?
Перейдите в Windows Пуск и введите REGEDIT. Выберите редактор реестра. В редакторе реестра перейдите в следующее место: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem.
…
Выберите значение DWORD (32-битное).
- Щелкните правой кнопкой мыши только что добавленный ключ и выберите «Переименовать».
- Назовите ключ LongPathsEnabled.
- Нажмите Ввод.
8 мар. 2020 г.
Почему существует ограничение в 255 символов?
Предел возникает из-за метода оптимизации, при котором меньшие строки хранятся с первым байтом, содержащим длину строки. Поскольку байт может содержать только 256 различных значений, максимальная длина строки будет 255, поскольку первый байт был зарезервирован для хранения длины.
Как включить ограничение длины пути?
Как включить длинные пути в Windows?
- Перейдите в следующий каталог: Политика локального компьютера> Конфигурация компьютера> Административные шаблоны> Система> Файловая система.
- Дважды щелкните параметр Включить длинные пути NTFS.
- Выбирать
- Нажмите а также
- Больше руководств для Windows вы можете найти здесь.
Должен ли я отключить ограничение длины пути в Windows 10?
Отключить предельную длину пути рекомендуется после успешной установки Python, потому что, если python был установлен в каталог с длиной пути более 260 символов, добавление его в путь может завершиться ошибкой. Так что не беспокойтесь об этом действии и приступайте к нему.
Какова максимальная длина имени файла в DOS?
2) Какова максимальная длина имени файла в DOS? Объяснение: Максимальная длина имени файла в операционной системе DOS составляет 8 символов. Обычно он известен как имя файла формата 8.3.
Какова максимальная длина имени файла в ОС?
Это зависит от того, создается ли файл в разделе FAT или NTFS. Максимальная длина имени файла в разделе NTFS составляет 256 символов, а в FAT — 11 символов (8-символьное имя,., 3-символьное расширение).
Что делать, если путь к файлу слишком длинный?
6 ответы
- (если путь слишком длинный) Сначала скопируйте папку на верхние уровни в проводнике Windows, а затем переместите ее на свой локальный компьютер.
- (если имена файлов слишком длинные) Сначала попробуйте заархивировать / rar / 7z их с помощью приложения для архивирования, а затем скопируйте файл архива на свой локальный компьютер и затем извлеките содержимое.
Как исправить слишком длинный путь к файлу?
Исправлено: ошибка слишком длинного пути назначения
- Метод 1. Сократите имя родительской папки.
- Способ 2. Временно переименуйте расширение файла в текстовое.
- Метод 3: удалить папку с помощью DeleteLongPath.
- Метод 4. Включите поддержку длинного пути (Windows 10, версия 1607 или более поздняя)
- Метод 5. Использование команды xcopy в командной строке с повышенными привилегиями.
Почему путь к файлу слишком длинный?
Если вы столкнулись с ошибкой «Путь назначения слишком длинный» при попытке скопировать или переместить файл в папку, попробуйте быстрый трюк, описанный ниже. Причина, по которой вы получаете сообщение об ошибке, заключается в том, что проводнику не удалось скопировать / удалить / переименовать любой путь длиной более 256 символов.