Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Раздел 4 система ввода – вывода и Файловая система

Поиск

Тема 4.1 Маска имени файла

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

  1. бывают маски имени файла (-m, -x) и имени каталога (-dm, -dx)
  2. маски бывают включающими (-m, -dm) и исключающими (-x, -dx)
  3. в качестве маски можно использовать не только метасивол '*', но и регулярные выражения (regex)
  4. в качестве аргумента для опций -m, -dm, -x и -dx в командной строке можно указывать несколько масок через запятую или имя текстового файла, в котором находится набор масок (синтаксис@filename). При этом маски имени файла и маски имени каталога можно использовать одновременно.
  5. в понятие "маска имени файла/каталога" может входить не только имя файла/каталога, но и его относительный путь (считая от исходного каталога)

Сначала разберемся с первым пунктом. Бывают случаи, когда удобно разделить маски на маски имен файлов и имен каталогов. Например, мы хотим скопировать все *.htm файлы из каталога c:\data и всех его подкаталогов. Нет ничего проще, воспользуемся включающей маской имени файла:

nnbackup.exe -i c:\data -o d:\backup -s -m *.htm

Расшифровка: копировать все htm-файлы из каталога c:\data и всех его подкаталогов в каталог d:\backup.

А как быть, если мы при этом хотим исключить подкаталог c:\data\wrong_data из обработки? Вот тут, как раз и приходит на помощь исключающая маска имени подкаталога:

nnbackup.exe -i c:\data -o d:\backup -s -m *.htm -dx "wrong_data"

Расшифровка: копировать все htm-файлы из каталога c:\data и всех его подкаталогов (кроме подкаталога c:\data\wrong_data) в каталог d:\backup.

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

nnbackup.exe -i c:\data -o d:\backup -x *.txt

Расшифровка: копировать все файлы кроме файлов с расширением txt из каталога c:\data в каталог d:\backup.

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

nnbackup.exe -i c:\data -o d:\backup -m *.htm*

Расшифровка: копировать только файлы с расширением htm и html из каталога c:\data в каталог d:\backup.

Включающие и исключающие маски можно использовать одновременно.

Переходим к третьему пункту. Самые простые маски - это маски созданные с помощью символа '*', который заменяет собой любое количество любых букв и цифр. Скажем, под маску '*test' подпадут слова 'test', 'contest', '123test', но не подпадет словa 'test123' и 'test_one'. Ну, а под маску '*test*' подпадут все слова указанные в предыдущем примере и все остальные слова, начинающиеся с 'test', содержащие 'test' внутри или заканчивающиеся на 'test'.

В качестве маски можно использовать не только метасивол '*', но и т. н. регулярные выражения (regex) - мощное средство составления шаблонов, с помощью которых в заданном тексте может проводиться поиск и сопоставление символов любой сложности. С синтаксисом регулярных выражений можно поближе познакомиться здесь. Чтобы задать маску с помощью регулярных выражений, просто окружите ее символами '/' (прямой слеш) - '/.../'.

nnbackup.exe -i c:\data -o d:\backup -m "/\d*\.htm/"

Расшифровка: копировать только файлы с расширением htm и именем, состоящим из любого количества цифр, из каталога c:\data в каталог d:\backup.

Четвертый пункт. В качестве аргументов к опциям -m, -dm, -x и -dx в командной строке можно указывать сразу несколько масок через запятую:

nnbackup.exe -i c:\data -o d:\backup -m *.htm*,*.css,*.gif,*.jpeg

Расшифровка:копировать из каталога c:\data в каталог d:\backup файлы с расширениями htm, html, css, gif и jpeg.

nnbackup.exe -i c:\data -o d:\backup -x *.txt,*.doc,*.rtf,*.pdf

Расшифровка: копировать из каталога c:\data в каталог d:\backup все файлы, кроме файлов с расширениями txt, doc, rtf и pdf.

В качестве аргумента для опций -m, -dm, -x и -dx в командной строке можно указывать имя текстового файла, в котором находится набор масок. В качестве разделителя используется перевод строки. Например, мы можем создать текстовой файл doc.msk с таким содержимым:

*.txt
*.doc
*.rtf
*.pdf

Теперь имя этого файла можно использовать в качестве аргумента для опций -m, -dm, -x и -dx:

nnbackup.exe -i c:\data -o d:\backup -m @doc.msk

Расшифровка:копировать из каталога c:\data в каталог d:\backup файлы с расширениями txt, doc, rtf и pdf.

nnbackup.exe -i c:\data -o d:\backup -x @doc.msk

Расшифровка: копировать из каталога c:\data в каталог d:\backup все файлы, кроме файлов с расширениями txt, doc, rtf и pdf.

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

Вот еще один пример текстового файла с масками - в нем собраны временные файлы, индексы, а также маски, включающие каталоги:

*.~*

*.bkp

*.bak
*.nsx

*.ntx

*.idx
*\temp*\*

*\external*\*

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

nnbackup.exe -i c:\data -o d:\backup -s -m *.htm -dx "wrong_*,*temp*"

Расшифровка: копировать все htm-файлы из каталога c:\data и всех его подкаталогов (кроме подкаталогов, начинающихся с 'wrong_' и подкаталогов, содержащих в имени 'temp') в каталог d:\backup.

Ну, и последний, пятый пункт: в понятие "маска имени файла/каталога" может входить не только имя файла/каталога, но и его относительный путь (считая от исходного каталога). Это предоставляет пользователю дополнительную свободу при создании масок. Правила здесь простые: если в созданной вами маске имени файла/каталога присутствует символ '\' (обратный слеш), то вся маска сравнивается с относительным путем. Если обратного слеша в маске нет, то она сравнивается только с именем файла/каталога.

Учитывание относительного пути в маске позволяет включать/исключать целые подкаталоги и файлы, которые в них содержатся. Например, если в каталоге с:\data есть подкаталог images, то я могу задать такую маску:

nnbackup.exe -i c:\data -o d:\backup -m *.exe,*images\* -s

Расшифровка: копировать все исполняемые файлы и все содержимое каталога images из каталога c:\data и всех его подкаталогов в каталог d:\backup.

При включении/исключении целых каталогов бывает удобно пользоваться и включающими и исключающими масками одновременно. Модифицируем предыдущий пример, чтобы из подкаталога images не копировались файлы с расширением bmp:

nnbackup.exe -i c:\data -o d:\backup -m *.exe,*images\* -x *images\*.bmp -s

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

Файлы физически реализуются как участки памяти на внешних носителях — магнитных дисках или CD-ROM. Каждый файл занимает некоторое количество блоков дисковой памяти. Обычная длина блока — 512 байт.

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

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

Каталог может иметь собственное имя и храниться в другом каталоге наряду с обычными файлами: так образуются иерархические файловые структуры. Пример такой структуры — на рис. 4.2.1.


Рис. 4.2.1 Дерево каталогов на диске

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

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

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

Тема 4.3 Драйверы устройств

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

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

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

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



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 130; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.10.139 (0.011 с.)