Специальные имена файлов windows

Имена файлов и их расширения

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

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

    Для имен файлов нельзя использовать
  • Прямую и обратную косую черту «/» и «\».
  • Зарезервированные символы «:», «*», «?» и «|».
  • Кавычки любого вида.
  • Знаки больше и меньше.
  • Большинство знаков, которые можно набрать только при помощи Alt+код.

Имена файлов с датами

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

В чем подвох? Для обсуждения сразу оговоримся, что в объяснении (как и в личном опыте) я не буду использовать разделителя. Мне это просто не нужно, а удлинение имени даже на два символа достаточно затрудняет работу.

Маски в именах файлов

Для некоторых видов работ с файлами (групповых операций или поиска) используется маска, содержащая символы подстановки «*» и «?».

Символ «?» в маске означает, что вместо него должен стоять любой символ.

Символ «*» в маске означает, что вместо него может быть подставлено любое сочетание символов. То есть их может не быть совсем, либо быть несколько (1, 2, 3 и т.д.).

Для ясности разберем несколько примеров.

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

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

Маска «*.doc» относится к файлам с расширением «doc», то есть файлам Word версии 2003 и ранее.

Маска «*.doc?» найдет файлы Word 2007.

Маска «*.doc*» найдет файлы любой версии Word: с трех- и четырехбуквенным расширением.

Маска «*. » обнаружит только файлы, имеющие расширение ровно в две буквы.

Маска «. *» выделит все файлы с трехбуквенными именами.

Маска «mark*.doc*» найдет файлы любой версии Word, начинающиеся с «mark».

Ограничения в некоторых особых случаях

MS-DOS (FAT16). Имя файла составляется по правилу 8+3 (ISO 9660): имя не может превышать восьми символов, а расширение — трех. Для имен файлов крайне нежелательно использовать кирилические буквы, так как множество вспомогательных программ для работы с файловой системой их просто не понимает. Впрочем это касается всех нелокализованных операционных систем. Точка может использоваться только для отделения имени от расширения, в связи с чем ее никак нельзя вставить в имя второй раз. Запрещено использование пробела.
Число вложений папок не может превышать восьми.

Windows (VFAT, FAT32, NTFS). Файл может иметь имя длиной до 255 символов. Теоретически сюда включается и длина пути, но максимальная его длина может достигать 32767 символов (32 кб или 2 15 ).
Число вложений папок не может превышать 128.

CD. Наиболее распространенными форматами, описывающими метод хранения файлов на CD, являются расширенный ISO 9660 (длина до 31 символа) и Microsoft Joliet Extension к ISO9660 (до 34 символов).

Читайте также:  Must have windows tools

Unix (NFS, Network File System) Принципиальное значение имеет регистр символов. «xx.txt» и «xX.txt» — два совершенно разных имени, и в одной папке могут находиться оба этих файла. Это может несколько сбить с толку пользователей Windows.
Имя отдельного каталога не должно превышать 255 символов и начинаться с буквы либо с символа подчеркивания и состоять из букв, цифр, (_.,), но не содержать пробелов. Расширение совершенно не является необходимым.
Абсолютный путь к файлу (вместе с его именем) не должен превышать 1023 символа.

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

В операционных системах предыдущего поколения (например DOS), расширение не могло превышать трех символов. В настоящее время таких ограничений нет. Более того, для некоторых случаев предпочтительным является использование четырехсимвольных вариантов (jpeg, html). На самом же деле расширение может состоять из двух (.ps) или даже одного символа (.h). Некоторые операционные системы (Unix, MacOS) могут вообще обходиться без расширения за счет того, что при открытии файла считывается его заголовок.

Специальные имена файлов windows

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

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

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

Все файловые системы придерживаются одних и тех же общих соглашений об именовании для отдельного файла: имя базового файла и необязательное расширение, разделяемые точкой. Однако, у каждой файловой системы, ()NTFS, и cdfs, NTFS или exFAT, FAT и FAT32, могут быть особые и иные правила о формировании отдельных компонентов пути к каталогу или файлу.

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

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

Правила именования файлов

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

  • Используйте точку, чтобы отделить имя базового файла от расширения в имени каталога или файла.
  • Используйте обратную косую черту (\) для разделения компонентов пути. Обратная косая черта отделяет имя файла от пути к нему, и одно имя каталога от другого имени каталога в пути. Нельзя использовать обратную косую черту в имени файла или каталога, потому что это зарезервированный символ, который разделяет имена на составляющие.
  • Не думайте о чувствительности к регистру. Например, можно считать имена OSCAR, Oscar и oscar одинаковыми, хотя некоторые файловые системы (например, файловая система, совместимая с POSIX) могут рассматривать их как разные. Обратите внимание, что NTFS поддерживает семантику POSIX для учета регистра, но это не поведение по умолчанию.
  • Обозначения томов (буквы дисков) не учитывают регистр символов. Например,» D:\ «и» d:\ » – это одно и то же.
  • Используйте любой символ на текущей кодовой странице для имени, включая символы Юникода и символы в расширенном наборе символов (128-255), за исключением следующих:
    • Следующие зарезервированные символы:
      • (больше)
      • : (двоеточие)
      • » (двойная кавычка)
      • / (косая черта)
      • \ (обратная косая черта)
      • | (вертикальный стержень или символ трубы)
      • ? (вопросительный знак)
      • * (звездочка)
    • Целое нулевое значение, иногда называемое символом ASCII NUL.
    • Символы, целочисленные представления которых находятся в диапазоне от 1 до 31, за исключением альтернативных потоков данных, где эти символы разрешены.
    • Любой другой символ, который целевая файловая система не разрешает использовать.
  • Используйте точку как компонент каталога в пути для представления текущего каталога, например».\temt.txt.».
  • Используйте две последовательных точки (..) как компонент каталога в пути для представления родительского каталога текущего каталога, например»..\temp.txt.»
  • Не используйте следующие зарезервированные имена для имени файла: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, и LPT. Также избегайте этих имен, за которыми следует расширение; например, NUL.txt не рекомендуется.
  • Не завершайте имя файла или каталога пробелом или точкой. Хотя файловая система может поддерживать такие названия, оболочка и пользовательский интерфейс Windows не будут работать с этим. Однако допустимо указывать точку в качестве первого символа имени. Например, «.temp».
Читайте также:  Dexp aquilon o158 драйвера windows 10

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

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

Во многих файловых системах имя файла будет содержать тильду (

) в каждом компоненте имени, которое слишком длинное, чтобы соответствовать правилам именования 8.3.

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

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

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

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

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

Читайте также:  Как проверить время загрузки windows


Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

статьи IT, Windows, файлы, каталоги, правила

Мир цифровой информации

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

Понятия «путь» и «имя файла»

Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\ файл.расширение

Зарезервированные символы и имена

Большинство часто употребляемых символов разрешается использовать в имени файла. Имя файла не должно содержать „ ” (знак больше), „:” (двоеточие), „ «” (двойные кавычки), „ /” (слеш), „ \” (обратный слеш), „ |” (вертикальная черта), „ ?” (вопросительный знак), „ *” (звездочка), а также не может заканчиваться точкой или пробелом. Файлы также нельзя называть зарезервированными именами устройств: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, и LPT9.

Ограничения на длины имен файлов и путей

Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH. На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ, который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.

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

Оцените статью