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

Рубрика: Файлы

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

?hel*lo.c?*.

Варианты:
1. hello.c
2. hello.cpp
3. hhelolo.cpp
4. hhelolo.c»

Что такое «файл»?
Файл — это «поименованная совокупность байтов», совокупность однотипной информации, хранящаяся в долговременной памяти компьютера и обозначенная именем.

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

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

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

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

Имя файла

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

имя.расширение

Имя файла не должно содержать следующих знаков:
/ \ : * ? «» < > |

В различных файловых системах ограничения на имя файла сильно различаются:
В FAT16 размер имени файла ограничен 8 символами (3 символа расширения).
В FAT32 имя файла ограниченно 255 символами
В NTFS имя ограничено 255 символами Unicode
В ext3 ограничение 255 байт.

Расширение – определяет тип хранимой информации, обычно автоматически задается программой.

Например, исполняемый файл: exe, dat, com; текстовый: txt, doc, rtf; звуковой: mp3, mid,wav; графический: jpeg, bmp, psd и другие.

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

Полное имя файла = путь к файлу + имя файла
Пример полного имени файла:
С:\ Работа\Отчет\Моя_работа.doc

Маска

Маска (шаблон) — имена файлов, в которых используются символы «*» и «?». Символ «?» заменяет один любой символ. Например, маска text?.doc означает все файлы с именами text1.doc , text2.doc , texta.doc и т.д.

Символ «*» заменяет любое число произвольных символов (в том числе и отсутствие символа). Например, маска text*.doc означает все файлы с именами text1.doc , text2.doc , texta.doc , text11.doc , textabc.doc , text.doc и т.д. Маска *.com означает все файлы с любыми именами и расширением .com . Маска text.* означает все файлы с именем text и любыми расширениями. Маска *.* означает все файлы (т.е. с любыми именами и расширениями).

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

Использую маску имени файла из примера вначале, сделаем вывод:
Искомой маске ?hel*lo.c?* соответствует только вариант №3, т.к. первый знак «?» маски дает нам один символ вначале, а второй знак «?», после символа «с», дает еще один произвольный символ. Ну а т.к. знаки «*» дают любое кол-во символов, то на них внимание можно вообще не обращать.

Ответ: маске ?hel*lo.c?* соответствует имя файла hhelolo.cpp (вариант 3).

3 комментария к “Файл. Файловая система. Маска”

  • Стас
    24 сентября, 2012, 21:06
    Цитировать

    Так и не понял, как задание делать, как в примере=( по вашей статье получается, что символ ничем не отличается от символа

  • admin
    18 ноября, 2012, 18:22
    Цитировать

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

  • Стас
    18 ноября, 2012, 21:00
    Цитировать

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

Оставить комментарий или два

Оповещать о новых комментариях по RSS