Как сделать имя файла с точкой

Добавил пользователь Евгений Кузнецов
Обновлено: 18.09.2024

все файловые системы, поддерживаемые 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".

Как сделать проверку на наличие похожего имени файла и запрос нового имени файла?
При загрузке изображения присваивается имя foto.jpg. Вопрос, как сделать проверку на то что фото с.


Сделать проверку на наличие похожего имени файла и запрос нового имени файла
Пользователь задает имя для создания файла. Вопрос, как сделать проверку на наличие похожего имени.

Синтаксическая ошибка в имени файла, имени папки или метке тома
Здравствуйте. Выполняю лаб. работу в cmd, в которой есть задание связанные с командой "Copy".

Разница в работе bat-файла при его запуске от имени простого пользователя и от имени администратора
Здравствуйте. Пытаюсь создать .bat который: создаёт папку %ProgramFiles%\MyProg и копирует туда.

Это для DOS.
Точка в имена файла допускается в Windows и длинные имена тоже там допускаются. Но в винде недопустимы символы: \ / ? : " * |.

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

В Windows, начиная, если не ошибаюсь с XP (а может с 7-ёрки) расширением считается часть символов после именно последней точки в имени. Так что проблем на мой взгляд никаких.

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

FAT12 и DOS/Windows 9x:

Поле DIR_Name логически разбивается на первые 8 символов, образующие имя файла, и последние 3, образующие расширение. Точка-разделитель добавляется на уровне операционной системы и не хранится в поле имени. Если имя и расширение файла не заполняют отведённое для них место, остальные байты поля DIR_Name заполняются пробелами (0x20). Имя и расширение файла могут содержать любую комбинацию букв, цифр или символов с ASCII-кодами свыше 127; специальные символы распределяются на три группы:

Позже длину имени файла расширили до 255 ASCII символов.

NTFS и Windows XP+:

Как уже упоминалось в названии, Mac OS X не позволяет мне называть файлы, начинающиеся с точки ( . ). Но мне нужна помощь .файл htaccess. Или, лучше, как использовать файл htaccess в Mac OS X, не давая ему имя, начинающееся с точки?

Я запускаю Mac OS 10.5.8 и XAAMP 1.7.3.

вы не можете сделать это с помощью поиска. Открыть терминал.app ( Applications -> Utilities -> Terminal ), и типа:

пример (не принимайте имена каталогов или начальное имя файла буквально, конечно):

terminal screenshot

вы можете создавать файлы, начинающиеся с "."если вы можете просматривать скрытые файлы.

введите следующие команды для отображения скрытых файлов:

когда вы закончите, введите эти команды, чтобы снова скрыть их:

использовать терминал вместо Finder, чтобы переименовать его. Попробуй!--0-->.

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

Теперь вы можете просто ввести ondot показать скрытые файлы. и ofdot для скрытия скрытых файлов

в finder нажмите command + shift + . для переключения видимости скрытых файлов.

затем просто перейдите в папку, где находится файл, и вы увидите его там.

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

это работает до тех пор, пока это происходит. Но TextEdit автоматически добавляется .txt до конца имени файла, поэтому я закончил .реврайт.txt

и файлы с именами, начинающимися с . не показывайтесь в папках в Finder. Вы увидите его, только если вернетесь в терминал и используете ls-a. И если его нельзя увидеть, то он не может быть загружен на онлайн-сервер.

используя Fetch в качестве моего FTP-клиента, я обнаружил, что он имеет функцию, которая позволяет мне создавать простой текстовый файл непосредственно на сервер. Это работало на созидание .htaccess, где мне это действительно нужно.

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

1. Нажмите и удерживайте левую кнопку мыши на файле 1-2 секунды. Когда отпустите, Вы сможете начать изменять имя файла.

2. Выделите нужный файл для переименования и нажмите клавишу F2 на клавиатуре.

Переименование файла через контекстное меню

Переименование файлов и папок в проводнике Windows

Дата: 07.04.2014 Автор/Переводчик: Linchak

Начать переименовывать файл очень просто.
Первым щелчком выбрать нужный файл, а более чем через 2 секунды ПРОСТО щелкнуть по нему еще раз. ВСЕ!

*САМОЕ ГЛАВНОЕ - интервал не менее 2 сек. между щелчками (кликами). Можно даже через минуту второй клик произвести :)

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