Файл: имена файлов. Полное, короткое, длинное, корректное и некорректное имя файла, его состав, шаблон и маска. Имя файла. Шаблон названия файла

Встретив непонятное словосочетание, читатель, как правило, стремится узнать его значение. Эта статья - краткая экскурсия для пользователя по миру неизведанного.

Общее понятие файла

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

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

Файловая система

Каждый (гибкий, жесткий или лазерный диск) может содержать огромное ее количество. Файловая система предназначена для хранения данных и организации различных каталогов. В широком смысле она состоит из совокупности всей информации на диске, наборов структур данных, комплекса системных программных средств. Корневой каталог состоит из вложений 2-го уровня, которые, в свою очередь, включают в себя папки 3-го и т. д. Одноуровневая линейная система применяется для дисков с несколькими файлами, многоуровневая иерархическая - для дисков с их большим количеством. Второй присуща древовидная структура.

Назначение файловой системы

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

Типы файлов

Благодаря определенной информации компьютер приблизительно может «понимать», что находится в наборе данных и с помощью какой программы это можно открыть. Расширение является несколькими буквами или цифрами, находящимися после точки в стандартном имени файла. Оно определяет тип данных и соответствующую программу. Например, информация, записанная на диск с расширением mp3, откроется в проигрывателе. Картинка программы присутствует на изображении файла. По этому значку опытный пользователь сразу понимает, где можно применить указанный тип данных. Документ откроется только в программе, предназначенной для текста. Видеофайлы можно прокрутить в проигрывателе. Информация в виде картинок открывается в графическом редакторе. Существует множество различных файлов. Каждый из них имеет значок, указывающий на соответствующую программу.

Файл: имена файлов

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

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

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

Полное имя

Можно привести такой пример:

C:\Музыка\Праздник\Мелодия.mp3 .

Указанное в образце полное имя файла - это название, состоящее собственно из него самого и пути информации. Последний из указанных элементов является перечнем идентификаторов папок, которые следует последовательно открыть, чтобы дойти с наивысшего уровня до набора данных. Полное имя файла обязательно задается, начиная с корневого каталога, и содержит в себе перечень всех зависимых вложений остальных уровней. Такое название абсолютное. Оно ссылается на информацию относительно корневого каталога независимо от текущей папки. Все элементы имени разделяются символом косой черты (\). Этот знак должен быть указан перед названием корневого каталога.

Короткое имя

Ограничения явились причиной возникновения этого термина. В те времена файл мог иметь только 8 символов в имени. Немного позже появилась возможность ставить точку после названия и дописывать 3 знака расширения.

Это выглядело так:

Мелодия.mp3 .

Разработчики стали использовать расширения имен для технических потребностей. С их помощью программы «научились» распознавать тип файла. Эта схема записи имени файла была названа системой 8.3 (по количеству символов названия и расширения, и точка между ними). Она имела ряд недостатков: невозможность использования пробела, знаков препинания, иных букв, кроме английского алфавита. Поэтому создать содержательное название было очень трудно. Краткое имя не содержит символа косой черты (\ ). По такому названию можно сослаться на данные текущего каталога.

Длинное имя

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

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

Проблемные объекты

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

Корректное имя файла

Оно может состоять из любых букв в верхнем и нижнем регистре, числа, точки и подчеркивания. Использование пробела не запрещается. Однако не стоит им злоупотреблять, а также ставить в начало названия. В имя можно включить иные символы, за исключением зарезервированных знаков (> < | ? * / \ : "). Расширение отделяется от названия последней правой точкой. Длина имени ограничивается 255 знаками. На самом деле обычному пользователю хватает 20 символов. Операционная система не различает строчные и прописные буквы в имени файла. Это означает, что сохранить в одном каталоге два элемента с одинаковым названием, написанным в разном регистре, не получится. Так может выглядеть пример совпадающих имен: «Текст.doc» и «ТЕКСТ.doc».

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

Кроме указанных ограничений, существует запрет на использование зарезервированных имен устройств.

Так, PRN является принтером. COM1-COM4 - устройствами, присоединяемыми к последовательным портам 1-4. AUX выполняет ту же функцию, что и COM1. LPT1-LPT4 являются элементами, присоединяемыми к параллельным портам 1-4 (принтерам), CON (consol) при вводе - клавиатурой, при выводе - экраном, NUL - «пустым» устройством. При попытке пользователя указать зарезервированное название система выдает ошибку. Предупреждение отображается и в том случае, когда используются запрещенные символы. Оно указывает на недопустимое имя файла. Неверно записанная информация о наборе данных не сохраняется, а принимает прежнее значение.

Шаблон названия файла

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

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

Особые символы

Шаблон имени файла задается с помощью специальных знаков:

  • Звездочка является обозначением любой группы символов. Их количество не имеет значения. К примеру, одна звездочка - это шаблон, которому соответствует вся информация в каталоге. Благодаря команде *.mp3 можно изменить любой однотипный файл. Имена файлов, начинающиеся на my и оканчивающиеся на.txt, выделяются с помощью шаблона my*.txt. Образец *2014* определяет все существующие на компьютере объекты, названия которых содержат в себе группу символов 2014.
  • является обозначением любого одиночного символа. К примеру, под образец music.??? подойдут начинающиеся на указанное слово данные, имеющие расширение из трех английских букв. В шаблоне na?e.txt вместо стандартного знака вопроса может быть любой символ.

Иные команды

Предусмотрены и другие правила составления образцов. Благодаря включению в команду квадратных скобок () с перечнем возможных значений можно сделать поиск более гибким. Если требуется найти какие-либо файлы, начинающиеся с буквы t, не учитывая регистр, то шаблон следует записать так: *. При поиске данных с именами, идущими по алфавиту, можно создать диапазон. Подобный шаблон выглядит так: ?.jpg. Системой будут найдены файлы с указанным типом расширения, имена которых состоят из двух знаков. Причем первая буква k, l, y или z - без учета регистра.

Значение командной оболочки

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

Расширение шаблона является процессом замены символа * на стройную последовательность имен файлов.

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

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

Они используются в групповых операциях с данными. Маска является последовательностью допустимых в названиях файлов символов, в которых также могут попадаться знак вопроса и звездочка. С ее помощью можно удалить любой имеющийся на компьютере временный файл. Имена файлов в команде могут содержать различные обозначения. Знак вопроса является отметкой одного произвольного символа, а звездочка - целой последовательности. К примеру, воспользовавшись командой rm *mp3, можно удалить все файлы, заканчивающиеся на этот фрагмент. Если потребуется стереть все данные в каталоге, то следует задать команду rm *. Почти так же работает команда с меняется один символ. Маски имен можно использовать и с каталогами.

Проблемное копирование

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

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

Запасные варианты

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

В крайнем случае пользователь может воспользоваться программой для копирования длинных имен FAR 2.0 и даже отключить Recycle Bin.

Статья написана для журнала "Хакер" в 2004 году. Она вышла в номере 02/04 (62) .

Во времена операционной системы MS-DOS и файловой системы FAT16 существовали серьезные ограничения, касающиеся имен файлов. Так, максимальная длина имени файла составляла 8 символов, а расширения – 3 символа. С появлением Windows 95, максимальная длина имени файла увеличилась до 255 символов, и теперь нам чаще всего не приходится гадать, что скрывается в файле с названием MIAF9D~1.ZIP. В новых файловых системах FAT32 и NTFS с тех времен остались другие, менее заметные ограничения, которые можно обходить и использовать в своих целях.

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

Правила, касающиеся имен файлов, содержатся в так называемых «Соглашениях об именах файлов» (Filename Conventions). В этом документе описано, какие символы допустимо использовать в названиях файлов, какие символы являются разделителями пути, максимальная длина пути, и т.п. Здесь же оговариваются и ограничения. К примеру, символы “\”, “/”, “?”, “|”, “*”, “<”, “>” и “:” имеют специальное значение в Windows при операциях с файлами, в частности, из командной строки, и поэтому не могут быть использованы в имени отдельного файла. Это ограничение, по-видимому, обойти невозможно, так как при обращении к системным функциям для работы с файлами Windows стопроцентно выделяет их среди других символов и по-своему интерпретирует. Здесь нужно обратить внимание на специфическое использование символов точки «.», двоеточия «:», и пробела. Символ пробела может встречаться в имени файла или каталога, точка используется как разделитель имени файла от расширения, а двоеточие – как разделитель между буквой диска и остальной частью пути. Использование двоеточия не допускается нигде, кроме как после буквы диска, с исключением для файловой системы NTFS, где двоеточие используется еще и в качестве разделителя между нормальным именем файла и прикрепленными к нему файловыми потоками. Точка и пробел могут стоять в любом месте в имени файла, но не могут быть завершающими символами. Это странное, на первый взгляд, ограничение существует, как объясняет Microsoft, ради совместимости новых файловых систем со старыми, такими как HPFS, используемой в OS/2 и FAT16. Я думаю, что это ограничение частично связано с двумя существующими во всех используемых в Windows файловых системах виртуальными файловыми объектами (так называемые «точки»). При работе с файловыми менеджерами типа TotalCMD, для перехода в предыдущую папку надо щелкать по каталогу с названием «..». В файловых системах так обозначается родительский каталог относительно текущего пути, а текущая папка обозначается как «.». Строго говоря, эти объекты не являются настоящими файлами или каталогами. Это просто абстрактные объекты, используемые по традиции для навигации между папками. В Windows Explorer они вообще не показываются. Так как пользователь может создавать файлы, имена которых начинаются с точки (но не в Windows Explorer), то Microsoft заблокировала возможность ставить точки в конце названия, чтобы было невозможно создать файл «..». Чем мелкомягких не устраивают пробелы в конце названия, мне не понятно.

Имена DOS-устройств

В каждой Windows системе существует эмуляция MS-DOS, и этот факт тоже накладывает свои ограничения. При работе в командной строке используются псевдонимы для устройств, работа с которыми ничем не отличается от работы с обычными файлами. Под устройства зарезервированы следующие имена файлов: AUX, CON, NUL, PRN, COM1-COM9 и LPT1-LPT9. Простейший пример работы с этими объектами: если в командной строке ввести «dir > prn | sort», то отсортированный список файлов и каталогов текущей папки начнет распечатываться из принтера. Здесь «prn» означает принтер. Понятно, что если бы существовала возможность называть файлы зарезервированными именами устройств, то возникла бы путаница, поэтому эта возможность заблокирована.

Способы обхода ограничений

Мне известно три способа обхода описанных ограничений. Общий принцип их действия таков: определенным образом составляется название файла, после чего оно передается какой-либо системной функции для работы с файлами. В результате этого алгоритм проверки параметра на корректность не срабатывает, и мы получаем нужный результат - файл или каталог с некорректным с точки зрения системы названием. Какие это открывает возможности, я опишу позже. А пока поговорим о самих способах. Некоторые способы можно использовать не только программно, но и на пользовательском уровне. Способ первый: Использование UNC-путей. Это, на мой взгляд, самый простой и удобный способ. Разберем его на примере создания файла с точкой в конце названия. При его создании мы будем использовать стандартные функции для работы с файлами, но при этом мы будем указывать полный путь до объекта, и добавлять в начале пути четыре символа "\\?\" или "\\.\". Получится примерно следующее: "\\?\f:\test\prn". Дальше работаем с файлом как обычно, то есть мы можем писать в него, читать из него, копировать, удалять и делать все остальное, используя обычные функции. Надо только не забывать, что везде, где требуется имя файла, необходимо указывать полный путь с UNC-префиксом.

Тестирование показало, что использование префикса "\\?\" более надежно, чем "\\.\". При использовании второго префикса, к примеру, можно потерпеть неудачу при попытке удаления файла. Этот способ еще хорош тем, что работает и в командной строке. Действительно, возможны манипуляции с файлами прямо из командной строки, не прибегая к каким либо языкам программирования. Набранная в командной строке команда "type \\?\f:\test\prn" отобразит содержимое созданного файла. Пример создания файла и записи в него информации смотри в листинге 1. Способ второй: Подстановка символов <.>. Тоже довольно удобный способ, который позволяет работать с файлами/папками любыми обычными средствами, а затем просто поменять название файла на какое-либо другое, некорректное. Этот способ реализовывается так: Если при использовании функций MoveFile, CopyFile, MkDir, RmDir и некоторых других подставить в конец нового названия файла или каталога два символа ".\", то файл создастся с любым нужным нам именем.

Этот способ тоже можно использовать в командной строке, но только с каталогами. Если набрать в ней строку то появится каталог, имя которого будет <.strange.>. При использовании этого способа в своих программах надо перед передачей параметра, содержащего путь к новому файлу или папке, добавить в его конец эти два символа. При использовании этого способа с функциями CopyFile и MoveFile два символа добавляются ко второму параметру функции. Использование способа в программе иллюстрирует листинг 2. Способ третий: Использование файловых потоков. Наименее удобный способ, так как годится только для создания файлов, и работает только на NT-системах с NTFS. Но, для полноты картины, я должен был упомянуть и его. Смысл способа в том, что мы создаем файл с прикрепленным к нему потоком, используя синтаксис, принятый при работе с файловыми потоками. Согласно Q115827 из Microsoft Knowledge Base, функция CreateFile проверяет последний символ переданного ей параметра, содержащего путь к файлу, и удаляет этот символ, если он является пробелом или точкой. В данном случае, последний символ этого параметра является последним символом не имени создаваемого файла, а названия потока. В этом и состоит хитрость - при таком подходе мы можем задать любое имя файла, в том числе и зарезервированное за DOS-устройством, а система будет не замечать этого. Посмотри на листинг 3. Для разнообразия создадим файл с именем, оканчивающимся на пробел. Созданный файл будет содержать прикрепленный файловый поток, который в принципе нам не был нужен, ведь наша цель была получить файл с зарезервированным именем. Недостатки этого способа в том, что перед его использованием в программе, нужно обязательно проверять, какая файловая система используется на конкретном диске.

А что мне с этого?

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

Ну что, получилось что-нибудь? Вряд ли, потому что при попытке доступа к файлу система использует те же самые функции, которые используем мы, но, в отличие от нас, система не знает наших хитрых способов, и поэтому получается так, что система фактически блокирует сама себя. Ну как, может сам догадаешься, какие возможности это предлагает? Первое что приходит в голову - это блокировка доступа к секретной информации. Конечно, это не так надежно, как шифрование, но что мешает тебе зашифровать какой либо файл, и, для верности, еще и закрыть к нему доступ, задав некорректное имя. Кроме того, мало кто сможет скопировать такой файл, что бы подобрать позже пароль в спокойной обстановке. Есть возможность вообще спрятать файл так, что его не будет видно. Способ работает только с файловыми системами FAT\FAT32. Если переименовать существующий файл, содержащий информацию, задав ему имя <..>, то файл перестает быть видимым в Проводнике. Соответственно найти невидимый файл будет довольно сложно. Файл можно увидеть только из командной строки, или в файловых менеджерах. Однако если файл создать в корневом каталоге диска, то файловые менеджеры его тоже не видят. Еще один возможный трюк: создается папка с таким же именем, и тоже невидимая. Суть в том, что в этой папке, используя способ №1 можно создавать файлы! В эту папку можно сохранять какие либо файлы, а чтобы получить к ним доступ, нужно как минимум знать их имена. Средствами Windows получить список файлов из этой папки невозможно, и получается защита не хуже архива с паролем!

Другое возможное использование - в западлостроении. Ничто не мешает нам создать на компе ламера некоторое количество файлов, размером по 4Гб каждый (если у ламера FAT32), или один большой файл любого размера (если NTFS), и переименовать их, ну, например, в имена DOS-устройств. Или можно сделать их невидимыми. В любом случае, эти файлы удаляются неочевидным способом, и поэтому большинству людей, скорее всего, придется форматировать винт и переустанавливать систему (если винт содержит только один раздел). Кстати, scandisk и другие подобные утилиты, почему-то не видят ничего странного в файлах с такими названиями. Наверное, каждый программист хоть раз в жизни пробовал писать вирус или троян. Естественно, чтобы вирус был настоящим вирусом, нужно намертво закрепить его в системе, а так же принять меры к тому, чтобы его как можно дольше не обнаружил антивирус. Я попытался использовать некорректные имена файлов в этих целях. Я создал на винте новую папку и поместил в него файл, содержащий тестовый вирус EICAR. Это вирус не приносит никакого вреда, и создан специально для тестирования антивирусов. Затем я просканировал папку с помощью Norton Antivirus. NAV правильно определил вирус и предложил отправить его в карантин. Я отказался, а вместо этого сделал вот что: я переименовал файл в <..> и просканировал папку заново. На этот раз NAV показал, что каталог чист. Затем я проделал тоже самое, но на томе с NTFS и вирус переименовал в. Результаты были аналогичными. Этот несложный опыт показал, что метод может найти применение и в сфере создания вирусов. Когда я изучал эту тему, я написал себе небольшую прогу, позволяющую быстро создавать и удалять файлы и каталоги с некорректными именами. Специально для нее я написал модуль на Дельфях, в котором реализовал наиболее часто используемые мной функции для работы с файлами, приспособив их для работы с некорректными именами файлов. Если ты не хочешь сам возиться с реализацией описанных способов, то можешь взять прогу с Xakep-CD, или скачать ее с инета, и использовать этот модуль в собственных разработках. Я думаю, что описанные мной способы не единственные из возможных, и если ты поэкспериментируешь с разными функциями для работы с файлами, то ты можешь найти какие то свои новые способы. Так что удачных экспериментов!

Файловые потоки NTFS

Файловая система NTFS поддерживает так называемые "альтернативные файловые потоки" (Alternate Data Streams) во всех версиях NTFS. Эта технология позволяет прикреплять к файлу, расположенному на томе с NTFS другие файлы (называемые потоками), содержащие любые данные. Прикрепленный к файлу поток не виден ни из проводника, ни из командной строки. Путь к потоку, относительно файла, к которому он прикреплен, выглядит так: "file.ext:stream". Допускается также такой синтаксис для доступа к потоку: "file.ext:stream:$DATA". Более того, главный файл, к которому прикреплены потоки, сам может рассматриваться в качестве потока. В этом случае путь будет выглядеть так: . Потоки широко используются системой для хранения какой либо служебной информации о файле, к примеру сводки документа. Атрибуты файла или каталога тоже хранятся в потоке с названием $Attribute_List. Вообще, символ "$" в названии потока говорит о том, что он каким то образом используется системой.

Universal Naming Convention

Universal Naming Convention - сокращенно UNC, можно дословно перевести как "Универсальное Соглашение об Именах", это формат для записи пути к файлу расположенному на удаленном компьютере. Он имеет вид "\\server\share\path". Server это, как ни странно сервер, share - это расшаренный ресурс на нем, а дальше следует путь к файлу в обычном формате. Такой способ доступа к файлам можно использовать и для локальной машины, только в этом случае вместо "server" нужно подставлять "?" или ".", а путь к файлу указывать вместе с буквой диска. Например так: "\\?\C:\folder\file.txt".

Листинг 1.

#include #include void CreateStrangeFile(char *filename) { char *curdir; //текущая папка char *uncpath; //полный путь до файла в формате UNC GetCurrentDirectory(MAX_PATH,curdir); //получаем текущий каталог wsprintf(uncpath,"\\\\?\\%s\\%s",curdir,filename); //формируем UNC-путь //создаем новый файл HANDLE hFile = CreateFile(uncpath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, NULL, NULL); DWORD ret; //записываем секретную инфу WriteFile(hFile,"This is a super secret info",28,&ret, NULL); CloseHandle(hFile); } int main() { CreateStrangeFile("prn"); //создаем файл

(ФС), обычно называемом каталогом , директорией или папкой. Имена файлов строятся по правилам, принятым в той или иной файловой и операционной системах (ОС). Многие системы позволяют назначать имена как обычным файлам, так и каталогам и специальным объектам (символическим ссылкам , блочным устройствам и т. п.).

Имя файла является частью полного имени файла , также называемого полным или абсолютным путём к файлу. Полное имя может включать следующие компоненты:

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

Имя файла состоит из двух частей, разделенных точкой:

Имена файлов в разных системах

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

Windows

  • \ - разделитель подкаталогов
  • / - разделитель ключей командного интерпретатора
  • : - отделяет букву диска или имя альтернативного потока данных
  • * - заменяющий символ (маска "любое количество любых символов")
  • ? - заменяющий символ (маска "один любой символ")
  • " - используется для указания путей, содержащих пробелы
  • < - перенаправление ввода
  • > - перенаправление вывода
  • | - обозначает конвейер

В UNIX и UNIX-подобных ОС запрещен слеш (/) - разделитель подкаталогов - и символ конца строки (\0). Перечисленные выше символы (кроме слеша) использовать можно, но из соображений совместимости их лучше избегать.

Расширение имени файла

Расширение имени файла (англ. filename extension , часто говорят просто расширение файла или расширение ) - последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла . Это один из распространённых способов, с помощью которых пользователь или программное обеспечение компьютера может определить тип данных, хранящихся в файле. Расширение отделяется от основной части имени файла последней точкой . Иногда могут использоваться несколько расширений, следующих друг за другом, например, «.tar.gz».

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

См. также

Литература

  • Робачевский А. Н., Немнюгин С. А., Стесик О. Л. Имен файлов / Базовая файловая система System V / Глава 4. Файловая система // Операционная система UNIX. - 2-е изд. - СПб. : БХВ-Петербург, 2008. - С. 338-339. - 656 с. - ISBN 978-5-94157-538-1

Wikimedia Foundation . 2010 .

  • Ясака-дзиндзя
  • Дубовик

Смотреть что такое "Имя файла" в других словарях:

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

    Расширение имени файла - (англ. filename extension, часто говорят просто расширение файла или расширение) последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла. Это один из распространённых способов, с… … Википедия

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

    Формат X файла - формат файла для хранения 3D объектов, созданный компанией Microsoft. Этот формат хранит информацию о геометрии 3D объекта (координаты вершин и координаты нормалей), текстурные координаты, описание материалов, пути и названия к текстурам, которые … Википедия

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

    атрибуты файла - Идентифицируемые атрибуты файла (имя и др.) [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN file attributes … Справочник технического переводчика

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

Флешка была открыта стандартными средствами Windows и дополнительно был , увы, это не дало положительных результатов.

Пропали все файлы на флешке, кроме одного. Появились несколько файлов с непонятными именами: &, t, н-& и т.д.

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

Хотя файлы и исчезли, но место занято. В конкретном случае, занято 817 МБ

Первая мысль о причине случившегося — действие вируса. Раннее, когда вирус , был использован файловый менеджер FAR manager, который, как правило, видит все файлы (скрытые и системные). Однако в этот раз, FAR manager увидел только то, что и стандартный проводник Windows…

«Потерянные» файлы не смог увидеть даже FAR manager

Поскольку Windows не видит пропавших файлов, то и не прокатывает трюк с изменением атрибутов файлов при помощи командной строки и команды attrib -S -H /S /D.

А что увидит Linux?

При таком раскладе, в качестве эксперимента, решил использовать операционную систему на основе Linux. В конкретном случае, был использован диск с операционной системой Ubuntu 10.04.3 (подробней об Ubuntu и где её скачать, ).

Важно! Нет необходимости устанавливать Ubuntu на компьютер — просто загружаемся с CD диска, точно также, как это делается с .

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

Как и предполагалось, Ubuntu увидела больше файлов по сравнению с Windows.

Ubuntu отображает и те файлы, которые были не видны из под Windows (кликабельно)

Далее, чтобы не заморачиваться с атрибутами файлов, были проделаны элементарные действия: все отображаемые файлы были выделены и скопированы на локальный диск «D» (естественно, можно скопировать файлы и на системный диск «C»).

Теперь можно снова загрузить Windows и проверить, что получилось.

Теперь Windows видит несколько вордовских файлов. Обратите внимание, что правильно отображаются и имена файлов

Увы, проблема не решена, так как файлов на флешке было явно больше (судя по объему в 817 МБ), чем удалось вытащить. По этой причине, попробуем провести проверку флешки на ошибки.

Устранение ошибок на флешке

Для поиска и устранение ошибок на дисках, в Windows есть стандартная утилита.

Шаг 1. Щелкаем по значку флешки правой клавишей мыши и выбираем команду «Свойства».

Шаг 2. Переходим на вкладку «Сервис» и щелкаем по кнопке «Выполнить проверку».

Шаг 3. Щелкаем по кнопке «Запуск».

После выполнения проверки и исправления системных ошибок, появится соответствующее сообщение.

Сообщение: «Были найдены и устранены некоторые ошибки»

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

Внутри папки FOUND.000 оказалось 264 файла с расширением CHK. В файлах с расширением CHK, могут храниться фрагменты файлов различных типов, извлеченных с жестких дисков и флешек при помощи утилит ScanDisk или CHKDISK.

Если все файлы на флешке были одного типа, например, документы Word с расширением docx, то в файловом менеджере Total Commander выделяем все файлы и нажимаем сочетание клавиш Ctrl + M (Файлы — Групповое переименование). Указываем какое расширение искать и на что его менять.

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

Указываем исходную папку (я сбросил файлы CHK на жесткий диск). Далее я выбрал вариант, при котором файлы с разными расширениями будут разложены по разным папкам.

Осталось нажать «Старт»

В результате работы утилиты появилось три папки:

  1. DOC — с документами Word;
  2. JPG — с картинками;
  3. ZIP — с архивами.

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

Минусом является то, что не удалось восстановить сходные имена файлов, так что явно придется повозиться с переименованием вордовских документов. Что касается файлов с картинками, то сгодятся и такие названия как FILE0001.jpg, FILE0002.jpg и т.д.




Top