Смекни!
smekni.com

Работа с каталогами и подкаталогами, работа с файлами (стр. 1 из 3)

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ДИСТАНЦИОННОГО ОБУЧЕНИЯ

Допустить к защите «___»________2009г.

Руководитель _______________

Курсовая работа

по дисциплине «Вычислительные системы, сети и телекоммуникации»

тема: «Работа с каталогами и подкаталогами. Работа с файлами»

Работу выполнил студент Осипов А.С. Группа 3-1И ЦДО г.Орел Замечания по работе
Работу проверила Костенко Т.П.

Курсовая работа защищена с оценкой __________ «___»__________200__г.

Подпись преподавателя _____________

г. Орел, 2009г.

Содержание

Введение..................................................................................................................3

I. Теоретическая часть............................................................................................5

1.1 Работа с каталогами диска.......................................................................5

1.2 Чтение/изменение корневого каталога..................................................8

1.3 Создание/удаление подкаталога............................................................11

1.4 Чтение/изменение подкаталога..............................................................12

II. Практическая часть ..........................................................................................15

Заключение.............................................................................................................17

Библиографический список использованной литературы……………….…18

Приложение А. Листинг программы...................................................................19

Приложение Б. Листинг программы....................................................................25


Введение

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

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

В курсовой работе будет рассмотрены некоторые задачи работы с каталогами диска.

Каждый диск имеет один корневой каталог, с которого начинается поиск всех остальных каталогов. Корневой каталог может содержать элементы, указывающие на подкаталоги, которые в свою очередь могут содержать ссылки на другие подкаталоги, образуя древовидную структуру каталогов. Корневой каталог всегда расположен в определенных секторах диска; подкаталоги хранятся как обычные дисковые файлы, поэтому они могут быть расположены в любом месте на диске. Отметим, что фиксированный диск может содержать до четырех корневых каталогов, если он разбит на разделы, хотя MS DOS «видит» только один корневой каталог. Каталоги могут иметь различные размеры, в зависимости от размера диска и его разбиения на разделы.


I. Теоретическая часть.

1.1 Работа с каталогами диска.

Каждый диск имеет один корневой каталог, с которого начинается поиск всех остальных каталогов. Корневой каталог может содержать элементы, указывающие на подкаталоги, которые в свою очередь могут содержать ссылки на другие подкаталоги, образуя древовидную структуру каталогов. Корневой каталог всегда расположен в определенных секторах диска; подкаталоги хранятся как обычные дисковые файлы, поэтому они могут быть расположены в любом месте диска. Отметим, что фиксированный диск может содержать до четырех корневых каталогов, если он разбит на разделы, хотя MS DOS "видит" только один корневой каталог. Каталоги могут иметь различные размеры, в зависимости от размера диска и его разбиения на разделы. В следующей таблице приведены размеры и позиции корневых каталогов для разных типов дисков:

Тип диска

Размер каталога

Число элементов

Начальный сектор

дискета 160К

4 сектора

64

9

дискета 180К

4 сектора

64

9

дискета 320К

7 секторов

112

15

дискета 360К

7 секторов

112

15

дискета 1.2М

14 секторов

224

29

жесткий 10М

----------переменные------------

жесткий 20М

----------переменные------------

В зависимости от разбиения на разделы фиксированный диск может иметь различные размеры каталога и номер начального сектора. Если весь диск отведен для MS DOS, то на XT и AT под корневой каталог отводится 32 сектора, что позволяет иметь в нем 512 элементов.

Как корневой каталог, так и подкаталоги, используют 32 байта для хранения информации об одном файле, независимо от типа диска. Таким образом в каждом секторе может храниться информация о 16-ти элементах каталога. Каждое 32-байтное поле разбито следующим образом:

Байты

0-7

Имя файла

8-10

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

11

Атрибут файла

12-21

Зарезервировано

22-23

Время последнего доступа к файлу

24-25

Дата последнего доступа к файлу

26-27

Начальный кластер

28-31

Размер файла

Точка между именем файла и его 3-байтным расширением не хранится. Все поля выровнены на левую границу, а пустые байты заполняются пробелами (код ASCII 32). Атрибут файла определяет является ли файл спрятанным, защищенным от записи и т.д. [5.2.6]. Он определяет также специальные элементы каталога, такие как подкаталоги или метка тома. Информация о времени и дате упакована, поэтому для чтения этих значений требуются битовые операции [5.2.5].

Начальный кластер указывает на позицию в таблице размещения файлов (FAT), которая обсуждалась в [5.1.1]. FAT хранит информацию о свободном пространстве на диске, а также отводит сектора при записи файла. FAT отводит дисковое пространство порциями, большими чем 1 сектор, которые называются кластерами. Файл расположен в цепочке кластеров и FAT содержит соответствующую цепочку элементов, указывающих, где эти кластеры расположены на диске. Каталог должен указывать на начальное звено цепочки элементов файла в FAT, и эта информация содержится в поле начальный номер кластера. Поскольку файл обычно занимает последний отведенный ему кластер не целиком, то поле размер файла хранит точную длину файла в байтах.


1.2 Чтение/изменение корневого каталога.

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

Корневой каталог читается и изменяется загрузкой его в память с использованием подхода, показанного в [5.4.2], когда читаются абсолютные сектора диска. Эти операции не оставляют места между секторами, когда они загружаются в память. Буфер, содержащий данные сектора, может рассматриваться как набор 32-байтных полей и пара указателей, которые могут использоваться для движения по каталогу. Один указатель всегда кратен 32 и указывает на начало элемента каталога. Второй указатель добавляется к первому и указывает на одно из полей в 32-байтном элементе. Данные в памяти могут быть изменены требуемым образом, а затем весь буфер записывается обратно на диск.

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

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