Как сделать слэш в названии файла

Обновлено: 05.07.2024

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

Что такое слэш на клавиатуре

В русском языке слэш обычно знают под синонимами:

  • дробь;
  • косая линейка;
  • черта дроби;
  • перечерка, перечертка (ранее популярные слова в типографике).

Слэш и backslash (бэкслеш) широко используют в документах, при указании индексов. Косые черточки актуальны в математике, издательском деле, программировании. Их применяют при наборе команд в Windows.

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

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

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

Дополнительные сведения см. в следующих подразделах:

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

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

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

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

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

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

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

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

Используйте обратную косую черту в качестве части имен томов, например "c: \ " в "c: \ path \ File" или " \ \ Серверный \ общий ресурс" в разделе " \ \ \ файл пути к общей папке сервера \ \ " для имен в формате UNC. Дополнительные сведения об именах UNC см. в разделе ограничение максимальной длины пути .

Не думайте о чувствительности к регистру. Например, имена OSCAR, OSCAR и OSCAR должны быть одинаковыми, даже если некоторые файловые системы (такие как POSIX-совместимая файловая система) могут считать их разными. Обратите внимание, что NTFS поддерживает семантику POSIX для чувствительности к регистру, но это не поведение по умолчанию. Дополнительные сведения см. в разделе CreateFile.

Обозначения томов (буквы диска) не учитывают регистр. Например, "D: \ " и "d: \ " ссылаются на один и тот же том.

Используйте любой символ в текущей кодовой странице для имени, включая символы Юникода и символы в расширенном наборе символов (128 – 255), за исключением следующих:

Следующие зарезервированные символы:

  • (больше чем);
  • : (двоеточие)
  • " (двойная кавычка)
  • / (косая черта)
  • \ знака
  • | (вертикальная черта или вертикальная линия)
  • ? (вопросительный знак)
  • * *

Целочисленное значение ноль, которое иногда называют символом ASCII NUL .

Символы, целочисленное представление которых находится в диапазоне от 1 до 31, за исключением альтернативных потоков данных, в которых разрешены эти символы. дополнительные сведения о файловых потоках см. в разделе file Потоки.

Любой другой символ, который не разрешен целевой файловой системой.

Используйте точку в качестве компонента каталога в пути для представления текущего каталога, например. \temp.txt ". Дополнительные сведения см. в разделе paths.

Используйте две последовательные точки (..) как компонент каталога в пути, чтобы представить родителя текущего каталога, например. \temp.txt ". Дополнительные сведения см. в разделе paths.

Не используйте следующие зарезервированные имена для имени файла:

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".

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

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

в новых файловых системах, таких как NTFS, exFAT, udf и FAT32, Windows сохраняет длинные имена файлов на диске в юникоде, что означает, что исходное имя длинного файла всегда сохраняется. Это справедливо даже в том случае, если длинное имя файла содержит символы национальных алфавитов, независимо от того, какая кодовая страница активна во время операции чтения или записи с диска.

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

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

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

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

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

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

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

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

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

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

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

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

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

в выпусках Windows до Windows 10 версии 1607 максимальная длина пути — это максимальный _ путь, который определен как 260 символов. в более поздних версиях Windows для снятия ограничения требуется изменить раздел реестра или использовать средство групповая политика. Дополнительные сведения см. в разделе ограничение максимальной длины пути .

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

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

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

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

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

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

Обратите внимание, что для префикса "?" можно использовать только API-интерфейсы Юникод, что \ \ \ позволяет превысить максимальный _ путь

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

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

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

Еще один пример использования пространства имен Win32-устройства — использование функции CreateFile с " \ \ . \ Физический диск x"(где X — Допустимое целочисленное значение) или" \ \ . \ CdRom X". Это позволяет получать доступ к этим устройствам напрямую, минуя файловую систему. Это работает потому, что эти имена устройств создаются системой при их перечислении, а некоторые драйверы также создают другие псевдонимы в системе. Например, драйвер устройства, реализующий имя C:, \ имеет собственное пространство имен, которое также может быть файловой системой.

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

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

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

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

существуют также api-интерфейсы, которые позволяют использовать соглашение о пространстве имен NT, но Windows диспетчер объектов делает это ненужным в большинстве случаев. для иллюстрации полезно просмотреть Windows пространства имен в обозревателе системных объектов с помощью средства 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 формата " \ устройство \ xxx".

Каждый раз, когда приходится провести технический аудит сайтов клиентов, я начинаю смотреть, что попало в индекс поисковых систем. Зачастую в поиск попадают дубли страниц, а Яндекс и Google видят один и тот же сайт, как два разных.

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

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

Настраиваем основное зеркало сайта

Основной ошибка, когда сайт доступен по двум адресам, с www или без:

Смотрим, что нужно прописать:

Убираем дубль главной страницы /index.php

Далее, сайт может быть доступен как:

Убираем /index.php из индексации:

Исправляем слэш в URL адресе

Например страница доступна со слэшем и без него:

Необходимо выбрать что-то одно. Честно, не уверен насколько это серьезно для продвижения сайта, будет ли вес страницы разбиваться пополам? Но есть один отрицательный момент, когда страница без слэша на конце, или наоборот, отдает ответ сервера 404. Посмотрим решение.

  • Убираем слэш на конце URL адреса:
  • Добавляем слэш в конец URL адреса:

301 Редирект с одной страницы на другую

Если адрес вашей страницы поменялся и вам необходимо сделать перенаправление на новую, используем следующий формат записи:

Как проверить ответ сервера?

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

Ответ сервера

Надеюсь данная статья поможет вам с помощью служебного файла .htaccess добиться правильной индексации сайта. Не забывайте включать директиву модуля RewriteEngine On !

Попробовал в LaTeX под Windows пользоваться пакетом import, чтобы подключать файлы из других папок. Столкнулся с идиотской проблемой. Имена папок разделяются в Windows через "\" backslash. И последний слэш в пути к файлу убивает закрывающую фигурную скобку. TeX ее не видит, думает это просто один символ в тексте \>, и выдает ошибку, естественно.
Вставить пробел нельзя, путь должен заканчиваться именно на \.
\import последние два символа склеиваются, и скобки нет для компилятора.
Все примеры в описании пакета из Unix, а там слэши в другую сторону, все в порядке.

Кто-нибудь знает, как с этим быть?

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

Попробуйте 1) не ставить последней бэкслэш 2) Использовать Unix, а не Windows path (т.е. слэши, а не бэкслэши).

Последний раз редактировалось EtCetera 26.01.2017, 23:33, всего редактировалось 2 раз(а).

$\LaTeX$

Голосую за прямые слэши. Помимо их очевидного преимущества в подобных случаях, они позволяют иметь кроссплатформенные документы. Сейчас имею дело с -документом со сложной структурой (используется разветвленная иерархия каталогов), который использует относительные пути с прямыми слэшами и прекрасно компилируется одновременно под Windows, Mac OS и Linux (везде в качестве дистрибутива используется TeX Live [на Mac OS — MacTeX]).

Кстати, от import пришлось отказаться в пользу банальных input / include .

P.S. Собственно, если Вам не приходится пользоваться UNC-путями, про обратные слэши под Windows можно вообще забыть как про страшный и нелепый сон. Кажется, во всех остальных сферах применения прямые слэши можно использовать наравне с обратными в путях к файлам и каталогам.

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

Собственно, если Вам не приходится пользоваться UNC-путями, про обратные слэши под Windows можно вообще забыть как про страшный и нелепый сон.

В UNC прямые слеши тоже работают. Проблема только в аргументах некоторых программ, в том числе системных - они тупо воспринимают прямой слеш как ключи:

C:\Temp>dir C:\Temp
Volume in drive C is Local Disk
Volume Serial Number is ****-****

Directory of C:\Temp

01/26/2017 03:56 PM .
01/26/2017 03:56 PM ..
07/11/2013 10:42 AM 1,188 c_studio_2013_inst-log.txt
07/11/2013 10:44 AM 1,724 vtune_2013_inst-log.txt
2 File(s) 2,912 bytes
2 Dir(s) 370,308,435,968 bytes free

C:\Temp>dir C:/Temp
Parameter format not correct - "emp".

Последний раз редактировалось EtCetera 27.01.2017, 01:13, всего редактировалось 2 раз(а).

Почему-то у меня было застарелое ощущение, что cmd (а, возможно, и кто-то еще) не переваривает прямые слэши в UNC-путях (в отличие от PowerShell ). Но сейчас попробовал, и вроде бы все нормально (если обрамлять путь кавычками, конечно).

-- Пт янв 27, 2017 01:11:02 --

venco
Все-таки мои ощущения имеют под собой основания. Прямые слэши нельзя использовать в UNC-путях к файлам с префиксом \\?\ (с помощью которого задаются пути с расширенной длиной):

Документация MSDN по Windows Desktop App Development в статье Naming Files, Paths, and Namespaces писал(а):

The "\\?\" prefix can also be used with paths constructed according to the universal naming convention (UNC). To specify such a path using UNC, use the "\\?\UNC\" prefix. For example, "\\?\UNC\server\share", where "server" is the name of the computer and "share" is the name of the shared folder. These prefixes are not used as part of the path itself. They indicate that the path should be passed to the system with minimal modification, which means that you cannot use forward slashes to represent path separators , or a period to represent the current directory, or double dots to represent the parent directory. Because you cannot use the "\\?\" prefix with a relative path, relative paths are always limited to a total of MAX_PATH characters.

Выделение курсивом мое.

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