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

Обновлено: 30.06.2024

На основе совета, который я недавно написал для своих коллег по работе.

Я заменил любую идентифицирующую информацию строками x вместо количества символов в реальных примерах с этого рабочего места.

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

Итог:

  • Общая длина пути к файлу в Windows не может превышать 260 символов; это может быть где-то между 248 и 260 (см. ссылки ниже). Это ограничение Windows, и вы или кто-либо другой не можете его изменить.
  • Длина пути к файлу включает имя диска (сетевого или локального), имена папок и ПЛЮС имя файла.
  • К символам относятся пробелы, знаки препинания и символы подчеркивания, а также буквы и цифры.
  • Краткий факт. Вы не можете использовать ни один из этих символов в имени файла или папки: \ / ? : * ”> Нравится Загрузка.

Связанные

Размещено в Windows |

10 комментариев

Мы сталкиваемся с этим — очень сложно создавать резервные копии с дисков. Нам пришлось заархивировать папки с длинными именами и управлять ими. Восходит к поговорке: «То, что вы можете… не означает, что вы должны»

Джоан, 29 января 2013 г., 6:29

И результатом «жестко запрограммированного ограничения» MS является ….

<р>1. Нелепые соглашения об именах папок, принятые для каждой компании. Результат: Раздражающие комментарии «Но это же очевидно…» старших сотрудников новичкам. Кроме того, расширенная кривая(и) обучения, позволяющая новым сотрудникам освоить «логику папок». И да, «потерянные документы», потому что вы не могли вспомнить, когда 5 слоев в глубину, на каком 6 или 7 подуровне хранить файл…
2. Довольно частые моменты WTF, когда вы видите нечетные имена файлов из-за чрезмерных имен папок, «занимающих» большую часть ограничения в 260 символов. Результат: множество непреднамеренно смешных имен файлов, потерянные файлы и люди, создающие «лучшие» имена файлов, чтобы скрыть первую попытку.

Ян Фрейзер, 29 января 2013 г., 12:43

Я скачал Long Path Tool, и это лучшее решение вашей проблемы.

Используйте инструмент "Длинный путь" для переименования, удаления, копирования, ошибок проверки имени файла и многих других задач. Я использовал этот инструмент бессчетное количество раз и очень доволен.

от stendy 22 июня 2014 г., 12:23

Ну, вы также можете использовать инструмент "Длинный путь", он работает!

если есть проблемы с длинным путем/длинным именем файла. Предлагаю попробовать программу «Long Path Tool».
Поверьте мне, это работает :)

Автор: Patrick8, 26 декабря 2014 г., 19:28

Попробуйте использовать программу long Path Tool, это очень полезно.

автор: kevin15, 18 сентября 2015 г., 17:48


Инструмент "Долгий путь" - лучшая программа для устранения ошибок и разблокировки.
Попробуйте и решите свою проблему.
Я использовал инструмент длинного пути и решил свою ошибку, разблокировал решение проблемы.

В Windows API (за некоторыми исключениями, описанными в следующих параграфах) максимальная длина пути – MAX_PATH, которая определяется как 260 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имени, разделенные обратной косой чертой, и завершающий нулевой символ. Например, максимальный путь на диске D равен "D:\какая-то 256-символьная строка пути", где " " представляет собой невидимый завершающий нулевой символ для текущей системной кодовой страницы. (Символы используются здесь для наглядности и не могут быть частью действительной строки пути.)

Например, вы можете столкнуться с этим ограничением, если клонируете репозиторий git с длинными именами файлов в папку с длинным именем.

Функции файлового ввода-вывода в Windows API преобразуют «/» в «\» как часть преобразования имени в имя в стиле NT, за исключением случаев использования префикса «\\?\», как подробно описано в следующих разделах. .

Windows API имеет множество функций, которые также имеют версии Unicode, позволяющие использовать путь увеличенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратной косой чертой, каждый из которых не превышает значения, возвращаемого в параметре lpMaximumComponentLength функции GetVolumeInformation (обычно это значение составляет 255 символов). Чтобы указать путь увеличенной длины, используйте префикс «\\?\». Например, "\\?\D:\очень длинный путь".

Максимальная длина пути в 32 767 символов является приблизительной, поскольку префикс "\\?\" может быть расширен системой до более длинной строки во время выполнения, и это расширение применяется к общей длине.

"\\?Префикс \" также можно использовать с путями, созданными в соответствии с универсальным соглашением об именах (UNC). Чтобы указать такой путь с помощью UNC, используйте префикс "\\?\UNC\". Например, "\\?\UNC\". server\share", где "server" — имя компьютера, а "share" — имя общей папки. Эти префиксы не используются как часть самого пути. Они указывают, что путь должен быть передан в систему с минимальной модификацией, что означает, что вы не можете использовать косую черту для представления разделителей путей, точку для представления текущего каталога или двойные точки для представления родительского каталога.Поскольку вы не можете использовать префикс «\\?\» с относительным путь, относительные пути всегда ограничены MAX_PATH символами.

Нет необходимости выполнять какую-либо нормализацию Unicode для строк пути и имени файла для использования функциями API файлового ввода-вывода Windows, поскольку файловая система обрабатывает пути и имена файлов как непрозрачную последовательность WCHAR. Любая нормализация, которую требует ваше приложение, должна выполняться с учетом этого, независимо от любых вызовов связанных функций API файлового ввода-вывода Windows.

При использовании API для создания каталога указанный путь не может быть настолько длинным, чтобы к нему нельзя было добавить имя файла 8.3 (то есть имя каталога не может превышать MAX_PATH минус 12).

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

Включить длинные пути в Windows 10 версии 1607 и более поздних

Начиная с Windows 10 версии 1607 ограничения MAX_PATH были удалены из общих функций файлов и каталогов Win32. Однако вы должны согласиться на новое поведение.

Чтобы включить новое поведение длинного пути, должны быть выполнены оба следующих условия:

  • Раздел реестра Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled (тип: REG_DWORD) должен существовать и иметь значение 1. Значение ключа будет кэшировано системой (для каждого процесса) после первого вызова уязвимый файл Win32 или функция каталога (список функций см. ниже). Раздел реестра не будет перезагружаться в течение всего времени существования процесса. Чтобы все приложения в системе распознали значение ключа, может потребоваться перезагрузка, поскольку некоторые процессы могли быть запущены до установки ключа.

Вы также можете скопировать этот код в файл .reg, который может установить это для вас, или использовать команду PowerShell из окна терминала с повышенными привилегиями:

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

Манифест приложения также должен включать элемент longPathAware.

Это функции управления каталогами, которые больше не имеют ограничений MAX_PATH, если вы соглашаетесь на использование длинного пути: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.

Это функции управления файлами, которые больше не имеют ограничений MAX_PATH, если вы согласились на использование длинного пути: 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.

Найдите свой тарифный план в консоли Code42 в меню "Учетная запись" .
Не клиент Incydr? Чтобы найти статьи CrashPlan, выполните поиск или просмотрите .

Incydr Professional, Enterprise, Gov F2 и Horizon, №

Да, Incydr Basic, Advanced и Gov F1.

CrashPlan Cloud, №

Устаревшие тарифные планы, нет.

CrashPlan для малого бизнеса, №

Обзор

Если вы используете операционную систему Windows и состояние резервного копирования не достигает 100 %, одной из возможных причин может быть то, что вы копируете пути к файлам и имена, длина которых превышает 255–260 символов. В этой статье дается техническое объяснение этой проблемы и рекомендуемое решение.

Влияет

Приложение Code42, работающее в Windows (все версии, x86 и x64)

Прежде чем начать

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

Под капотом

У Microsoft есть основной набор интерфейсов прикладного программирования (API), которые программисты могут использовать для взаимодействия с приложениями в операционной системе Windows. Эти программные интерфейсы часто называют Windows API. Windows API устанавливает максимальную длину имени файла, так что имя файла, включая путь к файлу, не может превышать 255–260 символов.

Однако, поскольку это ограничение API Windows, а не файловой системы, используемой в большинстве установок Windows (NTFS), некоторые программы могут создавать имена файлов, нарушающие это ограничение.

Когда приложение Code42 пытается прочитать эти файлы для резервного копирования, это не удается, поскольку Windows не знает, как обращаться с файлом. В этом случае в файле service.log приложения Code42 отображается следующее сообщение об ошибке:

Диагностика

Симптомы этой проблемы включают:

  • Ваша резервная копия никогда не достигает 100%
  • Приложение Code42 работает, но некоторые файлы остаются в списке задач резервного копирования.

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

Рекомендуемое решение

Поскольку вы не можете перемещать файлы с помощью проводника Windows, вы должны использовать команду subst, чтобы сократить путь к файлу (файлам).

Самый простой способ исправить это:

  • Замените папку с длинным путем к файлу буквой диска (тем самым сократив общее количество символов для файлов, содержащихся в папке).
  • Скопируйте или переместите файлы из папки в другую папку, не нарушая ограничение
  • Удалить сопоставленную папку

Это можно сделать любым из способов, описанных ниже.

Способ 1. Используйте команду subst, чтобы назначить букву диска определенной папке

Путь к определенной папке можно заменить буквой диска с помощью командной строки Windows и команды subst. Команда имеет следующий формат:

Например, если вы хотите заменить путь к папке C:\Example\File\Path на букву диска Y , введите:

Теперь диск Y: "сопоставляется" непосредственно с папкой. Поскольку вы заменили большую часть длинного пути к файлу на Y: , это больше не нарушает ограничение на количество символов. Теперь вы можете переместить файлы из этой папки в папку с более коротким путем.

После перемещения файлов вы можете удалить виртуальный диск, выполнив команду subst с параметром /d. Чтобы удалить диск Y:, созданный в приведенном выше примере, введите:

Способ 2. Используйте визуальную подстановку, чтобы назначить букву диска определенной папке

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

Информацию о программе и пример ее использования можно найти по адресу:

В Windows 10 можно включить поддержку длинных имен файлов, что позволяет использовать имена файлов до 32 767 символов (хотя вы теряете несколько символов для обязательных символов, которые являются частью имени). Чтобы включить это, выполните следующие действия: Запустите редактор реестра (regedit.exe)

Какое максимальное количество символов в именах файлов в Windows?

Windows API устанавливает максимальную длину имени файла, так что имя файла, включая путь к файлу, не может превышать 255–260 символов.

Существует ли ограничение на количество символов в имени файла?

Ни один отдельный объект (файл или папка) не может иметь имя длиннее 255 символов. Сюда входят пробелы и обратная косая черта, используемые в качестве разделителей. Это ограничение в 255 символов для отдельного имени файла часто указывается в кавычках, но оно применяется только к именам файлов в корневом каталоге без дополнительных содержащих папок.

Какой длины может быть путь к файлу в Windows 10?

В Windows 10 разрешены пути к файлам длиной более 260 символов (с помощью взлома реестра) Начиная с Windows 95, Microsoft разрешает пути к файлам длиной не более 260 символов (что, честно говоря, было намного лучше, чем ограничение в 8 символов ранее) . Теперь с помощью настройки реестра вы можете превысить эту сумму в Windows 10.

Почему существует ограничение в 255 символов?

Ограничение возникает из-за метода оптимизации, при котором меньшие строки сохраняются с первым байтом, содержащим длину строки. Так как байт может содержать только 256 различных значений, максимальная длина строки будет 255, так как первый байт был зарезервирован для хранения длины.

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

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

  1. Нажмите клавишу Windows, введите gpedit. msc и нажмите Enter.
  2. Перейдите к Политике локального компьютера > Конфигурация компьютера > Административные шаблоны > Система > Файловая система > NTFS.
  3. Дважды щелкните параметр «Включить длинные пути NTFS» и включите его.

Какова максимальная длина пути в Windows?

В Windows API (за некоторыми исключениями, описанными в следующих параграфах) максимальная длина пути – MAX_PATH, которая определяется как 260 символов.Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имени, разделенные обратной косой чертой, и завершающий нулевой символ.

Какие символы нельзя использовать в имени файла?

Не используйте какие-либо из этих распространенных недопустимых символов/символов:

Может ли имя файла быть слишком длинным?

Система NTFS привела нас к тому, что длина имени файла может составлять 255 символов, а длина пути к файлу может доходить до 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов? … Системная переменная MAX_PATH — это та, которая ограничивает имена файлов и пути к файлам до 260 символов.

Какие символы нельзя использовать в имени файла Windows?

Недопустимые имена файлов в Windows

  • Имя файла не содержит ни одного из следующих символов: ” (двойная кавычка), * (звездочка), (больше), ? (…
  • Имя файла не может заканчиваться пробелом или точкой.
  • Имя файла не может содержать имена, зарезервированные Windows.

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

Как исправить: «Имя файла слишком длинное» (в проводнике Windows)

  1. ШАГ 1. Найдите файл, который вызывает эту ошибку.
  2. ШАГ 2. Теперь, когда вы знаете расположение файла, перейдите к родительской папке или папке верхнего уровня. …
  3. ШАГ 3. Переименуйте родительскую папку во что-то достаточно короткое, чтобы уменьшить количество символов ниже 260 символов.

Включает ли путь имя файла?

Каталоги всегда заканчиваются разделителем файлов и никогда не включают имя файла. … Пути включают корень, имя файла или и то, и другое. То есть пути можно формировать, добавляя к каталогу либо корень, либо имя файла, либо и то, и другое.

Что такое инструмент длинного пути?

Инструмент "Длинный путь" предоставляет мощное решение для удаления, копирования и переименования файлов и папок с длинными путями.

Как добавить более 255 символов в Excel?

Текстовые значения в формулах не должны превышать 255 символов. Чтобы создать в формуле текстовые значения длиннее 255 символов, используйте функцию СЦЕПИТЬ или оператор конкатенации (&).

Сколько байтов составляет 255 символов?

Ascii использует только первые 7 бит каждого байта, но каждый символ по-прежнему занимает один байт. 255 байт здесь будут 255 символами.

Как увеличить лимит символов в SharePoint?

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

Читайте также: