Сколько символов может быть в имени файла
Перейти к содержимому

Сколько символов может быть в имени файла

  • автор:

Именование файлов, путей и пространств имен

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

Доступ к данным можно получить с дисков, устройств и сетевых ресурсов с помощью API-интерфейсов ввода-вывода файлов. Файлы и каталоги, а также пространства имен, являются частью концепции пути, который представляет собой строковое представление того, где получить данные независимо от того, находится ли он с диска или устройства или сетевого подключения для определенной операции.

Некоторые файловые системы, такие как NTFS, поддерживают связанные файлы и каталоги, которые также соответствуют соглашениям об именовании файлов и правилам, как обычный файл или каталог. Дополнительные сведения см. в разделе «Жесткие ссылки» и «Соединения » и «Точки повторного анализа» и «Операции с файлами».

Сведения о настройке Windows для поддержки длинных путей к файлам см. в разделе «Ограничение максимальной длины пути».

Имена файлов и каталогов

Все файловые системы соответствуют одинаковым общим соглашениям об именовании для отдельного файла: базовое имя файла и необязательное расширение, разделенное периодом. Однако каждая файловая система, например NTFS, CDFS, exFAT, UDFS, FAT и FAT32, может иметь конкретные и различные правила формирования отдельных компонентов в пути к каталогу или файлу. Обратите внимание, что каталог — это просто файл со специальным атрибутом, обозначающим его как каталог , но в противном случае следует соблюдать все те же правила именования, что и обычный файл. Так как каталог терминов просто относится к специальному типу файла насколько это касается файловой системы, некоторые справочные материалы будут использовать общий файл терминов, чтобы охватывать как концепции каталогов, так и файлов данных. Из-за этого, если иное не указано, любые правила именования или использования или примеры для файла также должны применяться к каталогу. Путь к термину относится к одному или нескольким каталогам, обратным косикам и, возможно, имени тома. Дополнительные сведения см. в разделе «Пути «.

Ограничения количества символов также могут отличаться и могут отличаться в зависимости от используемого формата префикса имени файловой системы и пути. Это еще более сложно благодаря поддержке механизмов обратной совместимости. Например, старая файловая система MS-DOS FAT поддерживает не более 8 символов для имени базового файла и 3 символа расширения в общей сложности 12 символов, включая разделитель точек. Это обычно называется именем файла 8.3. Файловые системы Windows FAT и NTFS не ограничиваются именами файлов версии 8.3, так как они поддерживают длинное имя файла, но они по-прежнему поддерживают версию 8.3 длинных имен файлов.

Соглашения об именах

Следующие основные правила позволяют приложениям создавать и обрабатывать допустимые имена файлов и каталогов независимо от файловой системы:

  • Используйте период для разделения базового имени файла от расширения в имени каталога или файла.
  • Используйте обратную косую черту (\) для разделения компонентовпути. Обратная косая черта разделяет имя файла от пути к нему и одно имя каталога из другого имени каталога в пути. Не удается использовать обратную косую черту в имени фактического файла или каталога, так как он является зарезервированным символом, который разделяет имена на компоненты.
  • Используйте обратную косую черту в качестве части имен томов, например «C:\» в «C:\path\file» или «\server\share» в «\\server\share\path\file» для имен универсального соглашения об именовании (UNC). Дополнительные сведения о именах UNC см. в разделе » Ограничение длины максимального пути».
  • Не предполагайте конфиденциальность регистра. Например, рассмотрим имена ОСКАРа, Оскара и оскара, чтобы быть одинаковыми, даже если некоторые файловые системы (например, файловая система, совместимая с POSIX), могут рассматривать их как разные. Обратите внимание, что NTFS поддерживает семантику POSIX для конфиденциальности регистра, но это не поведение по умолчанию. Дополнительные сведения см. в статье CreateFile.
  • Конструкторы томов (буквы диска) аналогично не учитывает регистр. Например, «D:\» и «d:\» относятся к тому же тому.
  • Используйте любой символ в текущей кодовой странице для имени, включая символы и символы Юникода в расширенном наборе символов (128–255), за исключением следующих:
    • Следующие зарезервированные символы:
      • < (меньше чем);
      • > (больше чем);
      • : (двоеточие)
      • » (двойная кавычка)
      • / (косая черта вперед)
      • \ (обратная косая черта)
      • | (вертикальная полоса или канал)
      • ? (вопросительный знак)
      • * (звездочка)

      Примечание. Windows распознает 8-разрядную букву ISO/IEC 8859-1 надстроек no, fx и fx как цифры и обрабатывает их как допустимые части имен устройств COM# и LPT#, что делает их зарезервированными в каждом каталоге. Например, echo test > COM¹ не удается создать файл.

      Короткие и длинные имена

      Длинное имя файла считается любым именем файла, превышающим короткое соглашение об именовании стилей MS-DOS (также называемое 8.3). При создании длинного имени файла Windows также может создать короткую форму 8.3 имени, называемую псевдонимом 8.3 или коротким именем, а также хранить его на диске. Этот псевдоним версии 8.3 можно отключить по соображениям производительности либо по системе, либо для указанного тома в зависимости от конкретной файловой системы.

      Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: псевдоним 8.3 нельзя отключить для указанных томов до Windows 7 и Windows Server 2008 R2.

      Во многих файловых системах имя файла будет содержать тильду (~) в каждом компоненте имени, которое слишком долго соответствует правилам именования 8.3.

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

      Чтобы запросить имена файлов 8.3, длинные имена файлов или полный путь к файлу из системы, рассмотрите следующие параметры:

      • Чтобы получить форму 8.3 длинного имени файла, используйте функцию GetShortPathName .
      • Чтобы получить длинную версию имени файла короткого имени, используйте функцию GetLongPathName .
      • Чтобы получить полный путь к файлу, используйте функцию GetFullPathName .

      В более новых файловых системах, таких как NTFS, exFAT, UDFS и FAT32, Windows сохраняет длинные имена файлов на диске в Юникоде, что означает, что исходное длинное имя файла всегда сохраняется. Это верно, даже если длинное имя файла содержит расширенные символы, независимо от кодовой страницы, активной во время операции чтения или записи диска.

      Файлы с длинными именами файлов можно скопировать между секциями файловой системы NTFS и секциями файловой системы Windows FAT без потери сведений о имени файла. Это может быть не так для старых ФАЙЛОВЫХ систем MS-DOS и некоторых типов файловых систем CDFS (CD-ROM), в зависимости от фактического имени файла. В этом случае короткое имя файла будет заменено, если это возможно.

      Пути

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

      Если компонент пути является именем файла, он должен быть последним компонентом.

      Каждый компонент пути также будет ограничен максимальной длиной, указанной для определенной файловой системы. Как правило, эти правила делятся на две категории: короткие и длинные. Обратите внимание, что имена каталогов хранятся файловой системой в качестве специального типа файла, но правила именования файлов также применяются к именам каталогов. В целом путь — это просто строковое представление иерархии между всеми каталогами, существующими для определенного файла или имени каталога.

      Полные и относительные пути

      Для функций API Windows, которые управляют файлами, имена файлов часто могут быть относительно текущего каталога, а некоторые API требуют полного пути. Имя файла относительно текущего каталога, если оно не начинается со следующего:

      • Имя UNC любого формата, которое всегда начинается с двух символов обратной косой черты («\\»). Для получения дополнительных сведений см. следующий раздел.
      • Конструктор дисков с обратной косой чертой, например «C:\» или «d:\».
      • Одна обратная косая черта, например «\directory» или «\file.txt». Это также называется абсолютным путем .

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

      • «C:tmp.txt» ссылается на файл с именем «tmp.txt» в текущем каталоге на диске C.
      • «C:tempdir\tmp.txt» ссылается на файл в подкаталоге текущего каталога на диске C.

      Путь также считается относительным, если он содержит «двойные точки»; то есть два периода вместе в одном компоненте пути. Этот специальный описатель используется для обозначения каталога над текущим каталогом, в противном случае называется родительским каталогом. Ниже приведены примеры этого формата:

      • «.. \tmp.txt» указывает файл с именем tmp.txt, расположенный в родительском каталоге текущего каталога.
      • «.. \.. \tmp.txt» указывает файл, который является двумя каталогами над текущим каталогом.
      • «.. \tempdir\tmp.txt» указывает файл с именем tmp.txt, расположенный в каталоге с именем tempdir, который является одноранговым каталогом текущего каталога.

      Относительные пути могут сочетать оба примера типов, например C. \tmp.txt». Это полезно, так как система отслеживает текущий диск вместе с текущим каталогом этого диска, он также отслеживает текущие каталоги в каждой из разных букв дисков (если система имеет более одного), независимо от того, какой диктор дисков задан как текущий диск.

      Ограничение максимальной длины пути

      В выпусках Windows до Windows 10 версии 1607 максимальная длина пути MAX_PATH, которая определяется как 260 символов. В более поздних версиях Windows изменение раздела реестра или использование средства групповой политики требуется для удаления ограничения. Полные сведения см. в разделе «Максимальное ограничение длины пути».

      Пространства имен

      В API Windows используются две основные категории соглашений о пространстве имен, которые обычно называются пространствами имен NT и пространствами имен Win32. Пространство имен NT было разработано для самого низкого уровня пространства имен, в котором могут существовать другие подсистемы и пространства имен, включая подсистему Win32 и, по расширению, пространства имен Win32. POSIX — это еще один пример подсистемы в Windows, созданной на основе пространства имен NT. Ранние версии Windows также определили несколько предопределенных или зарезервированных имен для определенных специальных устройств, таких как порты связи (последовательные и параллельные) и консоль отображения по умолчанию в рамках того, что теперь называется пространством имен устройств NT, и по-прежнему поддерживаются в текущих версиях Windows для обратной совместимости.

      Пространства имен файлов Win32

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

      Для ввода-вывода файла префикс «\\?\» в строку пути сообщает API Windows отключить все синтаксический анализ строк и отправить строку, которая следует за ней прямо в файловую систему. Например, если файловая система поддерживает большие пути и имена файлов, можно превысить MAX_PATH ограничения, которые в противном случае применяются API Windows. Дополнительные сведения об ограничении обычного максимального пути см. в предыдущем разделе о ограничении максимальной длины пути.

      Так как он отключает автоматическое расширение строки пути, префикс «\\?\» также позволяет использовать «.». и «.» в именах путей, которые могут быть полезны, если вы пытаетесь выполнить операции с файлом с этими зарезервированными относительными описателями пути в составе полного пути.

      Многие, но не все API ввода-вывода файлов поддерживают «\\?\»; Чтобы убедиться в правильности каждого API, необходимо ознакомиться со справочным разделом.

      Обратите внимание, что API Юникода следует использовать для проверки того, что префикс «\\?\» позволяет превышать MAX_PATH.

      Пространства имен устройств Win32

      Префикс «\\.\» получит доступ к пространству имен устройства Win32 вместо пространства имен Win32. Таким образом, доступ к физическим дискам и томам осуществляется напрямую без прохождения файловой системы, если API поддерживает этот тип доступа. Таким образом можно получить доступ ко многим устройствам, отличным от дисков (например, с помощью функций CreateFile и DefineDosDevice).

      Например, если вы хотите открыть последовательный порт связи системы 1, можно использовать COM1 в вызове функции CreateFile . Это работает, так как COM1–COM9 является частью зарезервированных имен в пространстве имен NT, хотя с помощью префикса «\\».\» также будет работать с этими именами устройств. По сравнению с тем, если установлен 100 портов последовательной доски расширения и хотите открыть COM56, его нельзя открыть с помощью COM56, так как для COM56 не существует предопределенного пространства имен NT. Вам потребуется открыть его с помощью «\\.\COM56», так как «\\.\».\» переходит непосредственно в пространство имен устройства, не пытаясь найти предопределенный псевдоним.

      Еще одним примером использования пространства имен устройства Win32 является использование функции CreateFile с «\\.\PhysicalDriveX» (где X является допустимым целым числом) или «\\.\\CdRomX«. Это позволяет напрямую обращаться к этим устройствам, обходя файловую систему. Это работает, так как эти имена устройств создаются системой по мере перечисления этих устройств, а некоторые драйверы также создают другие псевдонимы в системе. Например, драйвер устройства, реализующий имя «C:\», имеет собственное пространство имен, которое также происходит в файловой системе.

      API, которые проходят через функцию CreateFile, обычно работают с префиксом «\\.\». Так как CreateFile — это функция, используемая для открытия файлов и устройств в зависимости от используемых параметров.

      Если вы работаете с функциями API Windows, следует использовать префикс «\\.\» для доступа только к устройствам и не к файлам.

      Большинство API не поддерживают «\\.\»; Распознаются только те, которые предназначены для работы с пространством имен устройства. Всегда проверка справочный раздел для каждого API, чтобы убедиться.

      Пространства имен NT

      Существуют также API, которые позволяют использовать соглашение о пространстве имен NT, но диспетчер объектов Windows делает это ненужным в большинстве случаев. Чтобы проиллюстрировать, полезно просмотреть пространства имен Windows в браузере системных объектов с помощью средства Windows Sysinternals WinObj . При запуске этого средства отображается пространство имен NT, начиная с корневого каталога или \. Вложенная папка с именем «Global??» — это место, в котором находится пространство имен Win32. Именованные объекты устройства находятся в пространстве имен NT в подкаталоге Device. Здесь также можно найти Serial0 и Serial1, объекты устройства, представляющие первые два COM-порта, если они присутствуют в вашей системе. Объект устройства, представляющий том, будет примерно таким, как HarddiskVolume1, хотя числовой суффикс может отличаться. Имя DR0 в подкаталоге «Harddisk0» является примером объекта устройства, представляющего диск, и т. д.

      Чтобы сделать эти объекты устройств доступными для приложений Windows, драйверы устройств создают символьную ссылку (symlink) в пространстве имен Win32 «Global??», к соответствующим объектам устройства. Например, COM0 и COM1 в подкаталоге «Global??» просто соединяются с Serial0 и Serial1, «C:» — это асимметричная ссылка на HarddiskVolume1, «Physicaldrive0» — это асимметричная связь с DR0 и т. д. Без асимметричной связи указанное устройство «Xxx» не будет доступно для любого приложения Windows с помощью соглашений о пространстве имен Win32, как описано ранее. Однако дескриптор может быть открыт для этого устройства с помощью любых API, поддерживающих абсолютный путь к пространству имен NT формата \Device\Xxx.

      Благодаря добавлению поддержки нескольких пользователей через службы терминалов и виртуальные машины, для виртуализации корневого устройства на уровне системы в пространстве имен Win32 также необходимо выполнить виртуализацию. Это было сделано путем добавления симлинки с именем GLOBALROOT в пространство имен Win32, которое можно увидеть в подкаталоге «Global??» средства браузера WinObj, которое ранее обсуждалось, и может получить доступ через путь «\\?\?\GLOBALROOT». Этот префикс гарантирует, что следующий путь выглядит в истинном корневом пути диспетчера системных объектов, а не в зависимом от сеанса пути.

      См. также

      • Сравнение функциональных возможностей файловой системы
      • Именование тома

      Сколько символов может быть в имени файла

      • При загрузке файла символы косой черты (/) заменяются двоеточиями (:).

      • Если загружается файл с двойными кавычками («) в имени, оно может быть изменено некоторыми браузерами.

      2.

      3.

      Не используйте обратную косую черту (\) в качестве последнего символа в имени файла или папки.

      4.

      5.

      6.

      7.

      8.

      Если доступ к серверу WebAccess одновременно получает большое количество клиентов, скорость доступа может быть значительно снижена.

      Количество клиентов (компьютеров или устройств iPhone/iPod touch/iPad/Android), которые одновременно могут получить доступ к WebAccess, зависит от типа используемого устройства LinkStation/TeraStation.
      В качестве руководства используйте таблицу ниже.

      LinkStation/TeraStation Количество подключенных клиентов
      LS-CHL 1
      LS-WXL 2
      LS-WSXL 2
      Прочие (например, LS-XHL, TS-XL) 3

      Что не так с ограничением максимальной длины имени файла?

      В общем, нашёл, что под Windows ограничение на 255 символов, а под Linux на 255 байт, и написал такой код для копирования файлов с переименованием (там в имени сохраняются координаты прямоугольиков, и их может быть много, не лучшее решение, но это не я придумал).

      std::string filename = current_image->path().stem().string(); #if OS == LINUX for (const auto& ch : filename) if (!std::isalpha(ch) && !std::isdigit(ch) && ch != ' ' && ch != '.' &&ch != '-' && ch != '_') < QMessageBox::warning( this, "Warning", "Файл не будет сохранён, т.к. содержит недопустимые символы в " "своём имени.\nДопустимые символы: латинские буквы, цифры, " "пробел, точка, '-' и '_'." ); goto filename_invalidity; >#endif for (const auto& rect : rect_grabber->getRects()) < std::string rect_data = "_[" + std::to_string(rect.x()) + "," + std::to_string(rect.y()) + "," + std::to_string(rect.width()) + "," + std::to_string(rect.height()) + "," + rect.getType() + "]"; if (filename.size() + rect_data.size() + current_image->path().extension().string().size() else < QMessageBox::warning( this, "Warning", "Имя файла превысило максимально допустимую длину (255 символов)." " Часть данных разметки не будет сохранена в имени файла." ); break; >> filename += current_image->path().extension().string(); fs::copy(current_image->path(),fs::pathgetOutDirPath()/filename>); >

      Всё это падает сразу после вывода второго QMessageBox::warning, т.е. при сохранении с переименованием. Но сам алгоритм исключает ситуацию, что будет сохранено более 255 символов (включая расширение с точкой). Что не так?

      • Вопрос задан более трёх лет назад
      • 1275 просмотров

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

      Простой 13 комментариев

      Saboteur @saboteur_kiev Куратор тега C++

      Так а ошибка какая?
      Ваш алгоритм неправильно считает длину имени, или ошибка при попытке переименовать файл?
      Что в тексте ошибки?

      EgoRusMarch

      megorit @EgoRusMarch Автор вопроса

      Saboteur, Там у Виндовз полная фигня, ASCII помещается 234, а не ASCII — на кофейной гуще гадать только. Хотя я не знаю, может быть это так только на Windows 10, а на 7 будет как-то ещё.
      Как же я ненавижу Виндовз, постоянно гемор с кодировками, ABI и прочей фигнёй. Например, у меня почему-то OpenCV 3.4.0 не линкуется, хотя я его собрал, но нет, хрен там, он бинарно несовместим из-за какой-то тупой ошибки CMake’a. Короче, бесконечное гадагние, тогда как на Linux всё чётко, внятно и понятно.

      Saboteur @saboteur_kiev Куратор тега C++

      1. потому что utf-8 это не один и не два символа, а от 1 до 6.
      2. Длина в NTFS может быть гораздо длиннее, просто непонятно какими интерфейсами вы пользуетесь.
      проблема не в виндовз, а в отсутствии опыта.
      опять таки на вопрос не отвечено

      EgoRusMarch

      megorit @EgoRusMarch Автор вопроса

      Saboteur, ну да, поэтому просто ограничиваем символы ASCII и считаем до 255, либо чуть посложнее — считаем ASCII и не-ASCII помноженные на N. А тут фигня полная.
      Алгоритм работает правильно, тут как бы очевидно, он простой как пень. Я методом научного тыка установил, что 234 символа ASCII, не больше. С криллицей — не понятно пока, там ещё проблемы с кодировкой from QString to std::filesystem::path. Это я чуть позже исправлю и узнаю, надеюсь. Лучше бы, когнечно, СУБД использовать, а не фигнёй маяться этой.
      Да, опыт то можно на любом г****е получить, вот только он будет неприятный.

      Saboteur @saboteur_kiev Куратор тега C++

      C:\test\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\veryvery-long-folder\myfilename.txt
      681, никаких проблем.
      Вам нужно ковырять ваш код

      Евгений Шатунов @MarkusD Куратор тега C++

      Там у Виндовз полная фигня

      Да нет, фигня какая-то у тебя в понимании вопроса, а в WinAPI все качественно и стабильно уже третий десяток лет.

      MAX_PATH определяется значением 260 . Это — максимальная длина строки, принимаемой API функциями в качестве ASCII-представления пути. Ограничения в 255 символов в природе нет. А если учитывать эффект от SetCurrentDirectoryA, то лимитов на длину ASCII-представления пути тоже нет. 260 символов — это лимит промежуточного буфера, в который будет скопировано ASCII-представление твоего пути перед дальнейшей работой с ним.

      С UTF-8 WinAPI работать не умеет.

      В WinAPI есть два набора функций, одни принимают ASCII-строки и именуются суффиксом A , другие принимают UCS2-строки и именуются суффиксом W . Твой UTF-8 сперва надо перевести в UCS2/UTF-16 и только потом передавать в W -функцию.
      Все та же SetCurrentDirectoryW уже спокойно сможет перевести текущую рабочую директорию процесса в папку, в пути которой присутствуют этнические символы. ASCII-вариант тоже может, но только при правильном приведении кодировки строк представления путей. Это та еще задачка по сложности.

      В WinAPI существует UNC-нотация путей, в которой лимит на длину пути соответствует лимиту файловой системы. Например, это будет 32КБ для NTFSv3.

      Нормальный инженер на производстве сегодня работает только с ExW -функциями (при наличии вариантов с данными суффиксами). Строки, особенно путей, в WinAPI передает только в UCS2/UTF-16, а пути всегда приводит к UNC-нотации.

      EgoRusMarch

      megorit @EgoRusMarch Автор вопроса

      Евгений Шатунов, опытным путём выяснил, что ASCII помещается ровно 234, и ни символом больше, дальше падает. Записывал через std::filesystem. А при добавлении кириллицы — резко меньше. Уж не знаю в чём там дело, но ковыряться ради этого в платформозависимых либах не буду.
      Я в тегах отметил, что работаю через кросплатформенный фреймворк и кроссплатформенную стандартную плюсовую либу. В страшном сне я видел WinAPI.

      какое максимальное количество символов в названии файла!?

      Максимальная длина для Windows — 255 символов (а не 256!). Но не забывай, что название полное файла состоит непосредственно из его названия и пути к нему, начиная от диска, включая слеши.
      Название любого диска всегда состоит из буквы и двоеточия, т. е. как минимум 2 символа. Далее должен следовать слеш — итого три символа. Поэтому на имя файла остается в любом случае не более 252 символов (вместе с расширением и точкой) .
      Для таких сред, как DOS, название файла не должно превышать 8 символов. Если ты через среду DOS начнешь просматривать файлы среды Windows с более длинным названием, то увидишь, что «излишки» заменяются на знак ~.

      Остальные ответы

      в винде 250 кажется

      у разный прог по разному. знаю что где то 27

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *