Какие правила именования файлов нужно знать
При подборе названий для файлов используйте только латинские буквы, цифры, символы «-» и «_».
Из-за того, что для русского языка существует множество различных кодировок, многие программы могут некорректно работать с файлами, имеющими кириллические символы в названии. При использовании русских символов в названии могут возникнуть такие проблемы:
- Файл корректно отображается при просмотре через FTP-клиент, но не открывается на сайте;
- Имя файла может «побиться» (стать нечитабельным) при загрузке с локального компьютера на сервер или при копировании файла с сервера на сервер;
- Файл некорректно индексируется поисковыми системами;
- Файл не открывается на компьютере пользователя и т.д.
Общий синтаксис
Для определения любой из перечисленных выше сущностей (правило именования, группа символов или стиль именования) задайте одно или несколько свойств с помощью следующего синтаксиса:
Все параметры свойств для заданного kind объекта и entityName составляют конкретное определение сущности.
Каждое свойство может быть задано только один раз, но некоторые параметры допускают несколько значений, разделенных запятыми.
Порядок свойств не имеет значения.
Пространства имен устройств 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, чтобы убедиться.
Имена файлов и каталогов
Все файловые системы соответствуют одинаковым общим соглашениям об именовании для отдельного файла: базовому имени файла и необязательному расширению, разделенному точкой. Однако каждая файловая система, например NTFS, CDFS, exFAT, UDFS, FAT и FAT32, может иметь определенные и различные правила формирования отдельных компонентов в пути к каталогу или файлу. Обратите внимание, что каталог — это просто файл с особым атрибутом, назначающим его в качестве каталога, но в противном случае должен соответствовать всем тем же правилам именования, что и обычный файл. Так как каталог терминов просто относится к специальному типу файла, насколько это касается файловой системы, некоторые справочные материалы будут использовать общий файл терминов для охвата как концепций каталогов, так и файлов данных. Из-за этого, если не указано иное, любые правила именования или использования или примеры для файла также должны применяться к каталогу. Путь к термину относится к одному или нескольким каталогам, обратным косикам и, возможно, имени тома. Дополнительные сведения см. в разделе "Пути ".
Ограничения количества символов могут отличаться и могут отличаться в зависимости от используемого формата префикса имени файловой системы и пути. Это еще больше усложняется поддержкой механизмов обратной совместимости. Например, более старая файловая система MS-DOS FAT поддерживает не более 8 символов для имени базового файла и 3 символа для расширения в общей сложности 12 символов, включая разделитель точек. Это обычно называется именем файла 8.3. Windows файловых систем FAT и NTFS не ограничиваются именами файлов 8.3, так как они поддерживают длинные имена файлов, но по-прежнему поддерживают версию 8.3 длинных имен файлов.
Пространства имен
В api-интерфейсах Windows используются две основные категории соглашений о пространстве имен, которые обычно называются пространствами имен NT и пространствами имен Win32. Пространство имен NT было разработано для самого низкого уровня пространства имен, в котором могут существовать другие подсистемы и пространства имен, включая подсистему Win32 и, по расширению, пространства имен Win32. POSIX — это еще один пример подсистемы в Windows, построенной на основе пространства имен NT. Ранние версии Windows также определили несколько предопределенных или зарезервированных имен для определенных специальных устройств, таких как последовательные и параллельные порты, и консоль отображения по умолчанию в рамках того, что теперь называется пространством имен устройств NT, и по-прежнему поддерживаются в текущих версиях Windows для обратной совместимости.
2. Только строчные буквы
Используйте только строчные буквы для названий файлов. В Windows название «Новый Документ.docx» значит то же самое, что и «новый документ.docx», но это относится не ко всем операционным системам. Например, некоторые Unix-системы проявляют чувствительность к регистру.
Свойства стиля именования
Стиль именования определяет соглашения, которые будут применяться к правилу. Например:
- Использование прописных букв PascalCase
- Начинается с m_
- Заканчивается на _g
- Разделение слов с помощью __
Для стиля именования можно задать следующие свойства:
Свойство | Описание | Допустимые значения | Обязательно |
---|---|---|---|
capitalization | Стиль применения прописных букв для слов в пределах символа | pascal_case camel_case first_word_upper all_upper all_lower | Да 1 |
required_prefix | Должно начинаться с этих символов | Нет | |
required_suffix | Должно заканчиваться этими символами | Нет | |
word_separator | Слова внутри символа должны разделяться этим символом | Нет |
Примечания.
- Указать регистр букв для стиля именования обязательно, в противном случае ваш стиль может игнорироваться.
Пример: закрытые поля экземпляра с символом подчеркивания
Этот фрагмент файла . editorconfig обеспечивает, что закрытые поля экземпляра должны начинаться со _ слова; если это соглашение не выполняется, интегрированная среда разработки будет обрабатывать его как ошибку компилятора. Закрытые статические поля игнорируются.
Поскольку можно определить только группу символов на основе идентификаторов, которые она содержит (например, static или readonly ), а не идентификаторов, которые она не имеет (например, поле экземпляра, так как оно не имеет static ), необходимо определить два правила именования:
- Все закрытые поля ( static или нет) должны иметь underscored стиль именования, примененный к ним в качестве компилятора error .
- К закрытым полям с static должен быть underscored применен стиль именования с уровнем none серьезности; иными словами, этот вариант пропускается.
В этом примере также показано, как можно повторно использовать определения сущностей. underscored Стиль именования используется как правилами именования, так private_fields_underscored и private_static_fields_none .
Все файловые системы, поддерживаемые Windows, используют концепцию файлов и каталогов для доступа к данным, хранящимся на диске или устройстве. Разработчики Windows, работающие с API-интерфейсами Windows для ввода-вывода файлов и устройств, должны понимать различные правила, соглашения и ограничения имен файлов и каталогов.
Доступ к данным можно получить с дисков, устройств и общих сетевых ресурсов с помощью интерфейсов API файлового ввода-вывода. Файлы и каталоги, наряду с пространствами имен, являются частью концепции пути, который представляет собой строковое представление того, где получить данные, независимо от того, на диске они, или устройстве, или сетевом ресурсе.
Имена файлов и каталогов
Все файловые системы придерживаются одних и тех же общих соглашений об именовании для отдельного файла: имя базового файла и необязательное расширение, разделяемые точкой. Однако, у каждой файловой системы, ()NTFS, и cdfs, NTFS или exFAT, FAT и FAT32, могут быть особые и иные правила о формировании отдельных компонентов пути к каталогу или файлу.
Обратите внимание, что каталог - это просто файл со специальным атрибутом, обозначающим его как каталог, но он также должен следовать всем тем же правилам именования, что и обычный файл. Поскольку термин "каталог" просто относится к определенному типу файлов в отношении файловой системы, мы будем использовать общий термин "файл" для охвата понятий каталогов и файлов данных как таковых. Из-за этого, если не указано иное, любые правила именования или использования или примеры для файла также должны применяться к каталогу. Термин путь относится к одному или нескольким каталогам, обратным косым чертам и, возможно, имени тома.
Ограничения количества символов также могут различаться и варьироваться в зависимости от используемой файловой системы и формата префикса имени пути. Это еще больше осложняется поддержкой механизмов обратной совместимости. Например, старая файловая система MS-DOS FAT поддерживает не более 8 символов для имени базового файла и 3 символа для расширения, в общей сложности 12 символов, включая разделитель точку. Файловые системы Windows FAT и NTFS не ограничиваются этим, поскольку они имеют поддержку длинных имен файлов, но они по-прежнему поддерживают предыдущие версии имен файлов.
Правила именования файлов
Следующие основные правила позволяют приложениям создавать и обрабатывать допустимые имена файлов и каталогов независимо от файловой системы:
Длинным именем файла считается любое имя файла, которое превышает соглашение об именовании стиля MS-DOS (также называемое схема 8.3). При создании длинного имени файла Windows может также создать короткую форму имени 8.3, называемую псевдонимом 8.3 или коротким именем, и сохранить ее на диске. Это 8.3 псевдонимы могут быть отключены по соображениям производительности либо по всей системе, либо для указанного тома, в зависимости от конкретной файловой системы.
Во многих файловых системах имя файла будет содержать тильду ( ~ ) в каждом компоненте имени, которое слишком длинное, чтобы соответствовать правилам именования 8.3.
Не все файловые системы могут следовать соглашение о подстановке тильды, и системы могут быть настроены на отключение 8.3 генерации псевдонимов, даже если они обычно поддерживают его. Поэтому не следует делать предположение, что псевдоним 8.3 уже существует на диске.
- Чтобы получить 8.3 форму длинного имени файла, используйте функцию GetShortPathName.
- Чтобы получить версию короткого имени длинного файла, используйте функцию GetLongPathName.
- Чтобы получить полный путь к файлу, используйте функцию GetFullPathName.
Файлы, использующие длинные имена файлов, могут быть скопированы между разделами файловой системы NTFS и разделами файловой системы Windows FAT без потери информации об имени файла. Это может быть неверно для старых MS-DOS FAT и некоторых типов cdfs (CD-ROM) файловых систем, в зависимости от фактического имени файла. В данном случае, если это возможно, подставляется короткое имя файла.
В работе на компьютере пользователь должен придерживаться определенных правил. Именование файлов и выбор места их хранения имеют важное значение.
Пользователи всегда делились на две категории: просто пользователи и программисты (разработчики). В далеком прошлом именование используемых объектов было строго фиксированным, а большинство операционных систем и приложений следили за действиями пользователя. В настоящее время, в эпоху всеобщей «интеллектуализации» приложений, облачных решений и нетипированных данных стало доступным многое, но следует далеко не всем пользоваться.
Свойства группы символов
Для групп символов можно задать следующие свойства, которые ограничивают набор включаемых в группу символов. Чтобы указать для одного свойства несколько значений, разделите их запятыми.
Свойство | Описание | Допустимые значения | Обязательно |
---|---|---|---|
applicable_kinds | Типы символов в группе 1 | * (используйте это значение, чтобы указать все символы) namespace class struct interface enum property method field event delegate parameter type_parameter local local_function | Да |
applicable_accessibilities | Уровни доступности для символов в группе | * (используйте это значение, чтобы указать все уровни доступа) public internal либо friend private protected protected_internal или protected_friend private_protected local (для символов, определенных в методе) | Да |
required_modifiers | Соответствует только тем символам, у которых есть все указанные модификаторы 2 | abstract либо must_inherit async const readonly static или shared 3 | Нет |
Примечания.
4. Осмысленные названия на английском языке
Указывайте для файлов осмысленные названия на английском языке, избегайте названий «по умолчанию» (Новая папка 2) и использования транслита.
Когда пользователь собирается перейти по ссылке, он нередко обращает внимание на её адрес. Если имя страницы или файла описывает содержимое, пользователь охотнее перейдёт по ссылке.
Поисковые системы также учитывают название файла. Ссылка на ваш сайт, содержащая в названии ключевое слово, даёт поисковым системам понять, о чем ваша страница.
Все файловые системы, поддерживаемые Windows, используют концепцию файлов и каталогов для доступа к данным, хранящимся на диске или устройстве. Windows разработчики, работающие с API-интерфейсами Windows для операций ввода-вывода файлов и устройств, должны понимать различные правила, соглашения и ограничения имен файлов и каталогов.
Доступ к данным можно получить с дисков, устройств и сетевых ресурсов с помощью API-интерфейсов ввода-вывода файлов. Файлы и каталоги, наряду с пространствами имен, являются частью концепции пути, который представляет собой строковое представление места для получения данных независимо от того, находится ли он с диска или устройства или сетевого подключения для определенной операции.
Некоторые файловые системы, такие как NTFS, поддерживают связанные файлы и каталоги, которые также соответствуют соглашениям об именовании файлов и правилам так же, как обычный файл или каталог. Дополнительные сведения см. в разделе "Жесткие ссылки" и "Соединения" , " Точки повторного анализа" и "Операции с файлами".
Дополнительные сведения см. в следующих подразделах:
Дополнительные сведения о настройке Windows 10 для поддержки длинных путей к файлам см. в разделе "Ограничение максимальной длины пути".
Пространства имен NT
Существуют также API, которые позволяют использовать соглашение о пространстве имен NT, но диспетчер объектов Windows делает это ненужным в большинстве случаев. Чтобы проиллюстрировать, полезно просмотреть пространства имен Windows в браузере системных объектов с помощью средства winObj Windows Sysinternals. При запуске этого средства отображается пространство имен NT, начинающееся с корневого каталога, или "\". Вложенная папка с именем "Global??" — это место расположения пространства имен Win32. Именованные объекты устройства находятся в пространстве имен NT в подкаталоге Device. Здесь также можно найти Serial0 и Serial1, объекты устройства, представляющие первые два COM-порта, если они присутствуют в системе. Объект устройства, представляющий том, будет примерно таким, как HarddiskVolume1, хотя числовой суффикс может отличаться. Имя DR0 в подкаталоге "Harddisk0" является примером объекта устройства, представляющего диск и т. д.
Чтобы сделать эти объекты устройств доступными Windows приложениями, драйверы устройств создают символьную ссылку (символьную ссылку) в пространстве имен Win32 "Global??", к соответствующим объектам устройства. Например, COM0 и COM1 в подкаталоге "Global??" — это просто символьные ссылки на Serial0 и Serial1, "C:" — это символьная ссылка на HarddiskVolume1, "Physicaldrive0" — это символьная ссылка на DR0 и т. д. Без символьного канала указанное устройство Xxx не будет доступно ни одному приложению Windows с помощью соглашений о пространстве имен Win32, как описано выше. Однако дескриптор можно открыть на этом устройстве с помощью любых API, поддерживающих абсолютный путь к пространству имен NT формата \Device\Xxx.
Благодаря добавлению поддержки нескольких пользователей через службы терминалов и виртуальные машины стало еще больше необходимо виртуализировать корневое устройство на уровне системы в пространстве имен Win32. Для этого добавьте символьную ссылку с именем GLOBALROOT в пространство имен Win32, которое можно увидеть в подкаталоге "Global??" средства браузера WinObj, описанного ранее, и сможете получить доступ через путь "\\?\GLOBALROOT". Этот префикс гарантирует, что следующий путь выглядит в истинном корневом пути диспетчера системных объектов, а не в зависимом от сеанса пути.
В частности, можно определить правило именования, которое состоит из трех частей:
Правильное именование файлов, папок и выбор их места нахождения
Для спокойной работы на компьютере важно не только знать, какие правила записи имени файла следует соблюдать, но и как именовать и выбирать места их хранения.
Пользователь, уважающий свои данные и документы, старающийся их держать в полном порядке и безопасно хранить, не должен использовать ничего из того, что предлагает операционная система:
- «Рабочий стол»;
- «Мои документы»;
- «Мои рисунки»;
- «Мои презентации».
Все эти папки находятся в недрах операционной системы, доступны через ссылки, при крахе системы или воздействии вредоносного кода (вируса) будут моментально поражены, утеряны или украдены.
Всегда следует использовать папку (папки) с осознанно выбранным именем на диске D. В настоящее время практически все операционные системы и популярные приложения относятся положительно к буквам русского алфавита. Но крайне нежелательно разбавлять выбранные имена точками и пробелами.
Последовательность букв в имени папки, как и файла должна быть непрерывной. Символы дефиса «-» и подчеркивания «_» допустимы и безопасны в именовании, но точек и пробелов нужно избегать.
3. Не используйте пробел
Если название файла состоит больше, чем из одного слова, никогда не используйте пробел для отделения слов. Используйте в качестве разделителя символ «-» или «_».
Хорошо icon-skype.jpg Плохо image 1.jpg
Ограничение максимальной длины пути
В выпусках Windows до Windows 10 версии 1607 максимальная длина пути равна MAX_PATH, которая определяется как 260 символов. В более поздних версиях Windows изменение раздела реестра или использование средства групповая политика требуется для удаления ограничения. Полные сведения см. в разделе об ограничении максимальной длины пути .
Практичные правила именования
Практика работы пользователей привнесла много в то, как нужно работать на компьютере. Вот какие правила записи имени файла следует соблюдать (список):
- Только буквы (любого регистра) латинского или русского алфавита, цифры, знаки дефиса и подчеркивания.
- Никаких пробелов и точек.
- Файлы не должны храниться на рабочем столе или диске C.
Этих правил достаточно для безопасной работы с файлами.
При именовании файлов рекомендуется придерживаться их смысла, а помещать в папки по тематике. Кроме того, отличным правилом будет создание в тематических папках подпапок по рабочим дням в формате «ггммдд», в этом случае всегда можно будет найти файл по дате его создания, да и в день пользователь обычно не создает более десятка файлов.
Привычка оформлять тематические папки для хранения файлов по их назначению, а в этих папках - подпапки по рабочим дням - очень аккуратная и безопасная работа!
значений
определяет, какой тип сущности определяется (правило именования, группа символов или стиль именования) и должно быть одним из следующих:
Для чего задается свойство | Пример | |
---|---|---|
Правило именования | dotnet_naming_rule | dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion |
Группа символов | dotnet_naming_symbols | dotnet_naming_symbols.interface.applicable_kinds = interface |
Стиль именования | dotnet_naming_style | dotnet_naming_style.pascal_case.capitalization = pascal_case |
— это описательное имя, которое позволяет связать несколько параметров свойств с одним определением. Например, следующие свойства создают два определения группы символов ( interface и types ) и устанавливают для каждого из них два свойства.
Каждый вид сущности (правило именования, группа символовили стиль именования) имеет собственные Поддерживаемые свойства, как описано в следующих разделах.
Порядок правил
Порядок определения правил в файле EditorConfig не имеет значения. Все правила именования автоматически упорядочиваются в соответствии с определениями самих правил. Расширение языковой службы EditorConfig может анализировать файл EditorConfig и сообщать о случаях, когда порядок правил в файле отличается от того, который будет использоваться компилятором во время выполнения.
Если вы используете более раннюю версию Visual Studio, чем Visual Studio 2019 версии 16.2, правила именования в файле EditorConfig должны быть упорядочены от более конкретных к более общим. Применяться будет только первое обнаруженное правило. Но при наличии множества свойств правил с одним и тем же именем приоритет будет иметь последнее обнаруженное свойство с таким именем. См. подробнее об иерархии файлов и приоритетности.
Общее правило именования файла (папки)
Какие правила записи имени файла следует соблюдать, чтобы файл всегда был доступен, открывался нужным приложением и в случае непредвиденных обстоятельств его можно было восстановить или сделать резервную копию? В имени не должно быть никаких специальных, а тем более невидимых знаков. К специальным относится всё, что находится за пределами:
- букв латинского алфавита;
- букв русского алфавита;
- цифр;
- символов: «-», «_», «~» и «!».
Крайне нежелательно использовать в имени пробел. В некоторых случаях допустимо применять символ «.», но желательно этого не делать. Исторически точка отделяла имя файла от его расширения - это классика компьютерного жанра, и лучше её оставить в покое.
Использование «!» и «~», как правило, не вызывает затруднений, но это следует делать с осторожностью, поскольку многие приложения критичны к этим символам и могут просто не открыть файл. Обычно этими знаками манипулируют только профессионалы.
Невидимых символов не меньше, чем видимых, далеко не все приложения позволяют пользователю их использовать, но на практике возможно многое, что не может предусмотреть программист в своей программе.
Невидимым может стать символ при смене кодировки. Большинство приложений отобразит такую ситуацию кракозябрами или более эстетично знаками «?». В обоих случаях файл не будет открыт и доступен.
Полные и относительные пути
Для функций 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". Это полезно, так как система отслеживает текущий диск вместе с текущим каталогом этого диска, он также отслеживает текущие каталоги в каждой из разных букв дисков (если в вашей системе несколько), независимо от того, какой диктор диска установлен в качестве текущего диска.
Пространства имен файлов Win32
Префикс пространства имен Win32 и соглашения приведены в этом разделе и в следующем разделе с описанием их использования. Обратите внимание, что эти примеры предназначены для использования с функциями API Windows и не все обязательно работают с приложениями оболочки Windows, такими как Windows Explorer. По этой причине существует более широкий спектр возможных путей, чем обычно доступны в приложениях оболочки Windows, и Windows приложения, которые используют преимущества этого, можно разработать с помощью этих соглашений о пространстве имен.
Так как он отключает автоматическое расширение строки пути, префикс "\\?\" также позволяет использовать ".." и "." в именах путей, которые могут быть полезны при попытке выполнить операции с файлом с этими зарезервированными относительными описателями пути в рамках полного пути.
Многие, но не все API-интерфейсы ввода-вывода файлов поддерживают "\\?\"; Необходимо ознакомиться со справочной темой для каждого API, чтобы убедиться.
Обратите внимание, что API Юникода должны использоваться для проверки того, что префикс "\?\" позволяет превысить MAX_PATH
Идентификатор правила кода: IDE1006 (Naming rule violation)
Все параметры именования имеют идентификатор правила IDE1006 и заголовок Naming rule violation . Серьезность для нарушений именования можно настроить глобально в файле EditorConfig, используя следующий синтаксис:
Серьезность должна иметь значение warning или error , чтобы принудительно применяться при сборке. Все возможные значения серьезности перечислены на странице об уровнях серьезности.
Короткие и длинные имена
Длинное имя файла считается любым именем файла, превышающим короткое соглашение об именовании стилей 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 FAT и некоторых типов CDFS (CD-ROM) в зависимости от фактического имени файла. В этом случае короткое имя файла будет заменено, если это возможно.
Путь к указанному файлу состоит из одного или нескольких компонентов, разделенных специальным символом (обратная косая черта), при этом каждый компонент обычно является именем каталога или именем файла, но с некоторыми заметными исключениями, рассмотренными ниже. Зачастую крайне важно интерпретировать системой путь, как выглядит начало или префикс пути. Этот префикс определяет пространство имен , используемое путем, а также специальные символы, используемые в какой позиции в пути, включая последний символ.
Если компонент пути является именем файла, он должен быть последним компонентом.
Каждый компонент пути также будет ограничен максимальной длиной, указанной для конкретной файловой системы. Как правило, эти правила делятся на две категории: короткие и длинные. Обратите внимание, что имена каталогов хранятся файловой системой как особый тип файла, но правила именования файлов также применяются к именам каталогов. Чтобы подвести итог, путь — это просто строковое представление иерархии между всеми каталогами, которые существуют для определенного файла или имени каталога.
Стили именования по умолчанию
Если вы не укажете никаких пользовательских правил именования, применяются следующие стили по умолчанию:
Для классов, структур, перечислений, свойств, методов и событий со специальными возможностями по умолчанию используется стиль именования Pascal.
Для интерфейсов со специальными возможностями по умолчанию используется стиль именования Pascal с обязательным префиксом I.
Соглашения об именах
Следующие фундаментальные правила позволяют приложениям создавать и обрабатывать допустимые имена файлов и каталогов независимо от файловой системы:
Используйте точку, чтобы отделить имя базового файла от расширения в имени каталога или файла.
Используйте обратную косую черту (\) для разделения компонентовпути. Обратная косая черта делит имя файла на путь к нему и одно имя каталога из другого имени каталога в пути. Обратную косую черту нельзя использовать в имени фактического файла или каталога, так как это зарезервированный символ, разделяющий имена на компоненты.
Используйте обратную косую черту в качестве части имен томов, например "C:\". в папке "C:\path\file" или "\\server\share" в "\server\share\path\file" для имен UNC. Дополнительные сведения об именах UNC см. в разделе ограничения максимальной длины пути .
Не предполагайте конфиденциальность регистра. Например, рассмотрим имена ОСКАРа, Оскара и оскара, хотя некоторые файловые системы (например, файловая система, совместимая с POSIX), могут рассматривать их как разные. Обратите внимание, что NTFS поддерживает семантику POSIX для учета регистра, но это не поведение по умолчанию. Дополнительные сведения см. в разделе CreateFile.
Конструкторы томов (буквы диска) точно так же не учитывают регистр. Например, "D:\" и "d:\" ссылаться на тот же том.
Используйте любой символ в текущей кодовой странице для имени, включая символы и символы Юникода в расширенном наборе символов (128–255), за исключением следующих:
Следующие зарезервированные символы:
- < (меньше чем);
- > (больше чем);
- : (двоеточие)
- " (двойная кавычка)
- / (косая черта)
- \ (обратная косая черта)
- | (вертикальная полоса или канал)
- ? (вопросительный знак)
- * (звездочка)
Целочисленное значение ноль, иногда называемое символом NUL ASCII.
Символы, целочисленные представления которых находятся в диапазоне от 1 до 31, за исключением альтернативных потоков данных, в которых разрешены эти символы. Дополнительные сведения о потоках файлов см. в разделе "Файл Потоки".
Любой другой символ, который не допускает целевая файловая система.
Используйте точку в качестве компонента каталога в пути для представления текущего каталога, например ".\temp.txt". Дополнительные сведения см. в разделе "Пути".
Используйте два последовательных периода (.).) в качестве компонента каталога в пути для представления родительского элемента текущего каталога, например ".. \temp.txt". Дополнительные сведения см. в разделе "Пути".
Не используйте следующие зарезервированные имена для имени файла:
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 и LPT9. Кроме того, избегайте этих имен, за которым следует немедленное расширение; Например, NUL.txt не рекомендуется. Дополнительные сведения см. в разделе Пространства имен.
Не заканчивайте имя файла или каталога пробелом или точкой. Хотя базовая файловая система может поддерживать такие имена, оболочка Windows и пользовательский интерфейс не поддерживаются. Однако можно указать точку в качестве первого символа имени. Например, ".temp".
Свойства правила именования
Чтобы правило вступило в силу, должны быть указаны все свойства правила именования.
Свойство | Описание |
---|---|
symbols | Имя группы символов, определенной в других местах; правило именования будет применено к символам в этой группе |
style | Имя стиля именования, который должен быть связан с этим правилом; стиль определен в других местах |
severity | Задает серьезность, с которой будет применяться это правило именования. Задает для сопоставленного значения один из доступных уровней серьезности 1 |
Примечания.
Пример: прописная буква открытого участника
Ниже представлен файл EDITORCONFIG с соглашением об именовании, в котором указано, что общедоступные свойства, методы, поля, события и делегаты должны начинаться с прописной буквы. Обратите внимание, что это соглашение об именовании указывает несколько типов символов, к которым применяется правило, через запятую.
Читайте также: