48889 (588618), страница 2

Файл №588618 48889 (Розробка програмного забезпечення файлового менеджера) 2 страница48889 (588618) страница 22016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Послідовність кластерів, яка може належати одному об’єкту в таблиці ФАТ, представляє собою односпрямований список, голова якого в явному виді відсутня, а кінець визначається ознакою кінця ланцюжка.

    1. Структура елемента каталогу

Кожен каталог представляє собою послідовність дескрипторів. Структура дескриптора об’єкта з коротким ім’ям наведена у табл. 2.6 для FAT13/FAT16 та у табл. 2.8 для FAT32. Структура байту атрибуту у табл. 2.7.

Таблиця 2.6 – Структура дескриптора для FAT12 / FAT16

Зсув

Розмір, байт

Опис

Ім’я

0

1

Ознака дескриптору: 0 – вільний; E5h - видалений; інше-перший символ імені об’єкту

fn

1

7

7 символів імені об’єкту

name

8

3

Розширення об’єкту

ext

11

1

Байт атрибутів

attr

12

10

Резерв

reserv

22

2

Час створення або останньої модифікації

TimeMade

24

2

Дата створення або останньої модифікації

DateMade

26

2

Молодша частина початкового кластеру об’єкта

FirstCluster

28

4

Розмір об’єкта в байтах

SizeFileInBytes

Таблиця 2.7 – Байт атрибутів об’єкта

Номербіту

Значення біту

Опис

0

1

Об’єкт тільки для читання

1

1

Об’єкт схованого типу

2

1

Об’єкт системного типу

3

1

Мітка тому

4

1

Директорія

5

1

Архівний файл

6

Не використовується

Таблиця 2.8 – Структура дескриптора для FAT32

Зсув

Розмір, байт

Опис

Ім’я

0

1

Ознака дескриптору: 0 – вільний; E5h - видалений; інше-перший символ імені об’єкту

fn

1

7

7 символів імені об’єкту

name

8

3

Розширення об’єкту

ext

11

1

Байт атрибутів

attr

12

1

Резерв

reserv

13

2

Час створення (0.1 секунд)

TimeMadeSec

14

2

Час створення

TimeMade

16

2

Дата створення або останньої модифікації

DateMade

18

2

Дата останнього звертання

DateLast

20

2

Старший байт номеру першого кластеру, який був виділений об’єкту

FirstClusterHigh

22

2

Час останньої модифікації об’єкту

TimeLast

24

2

Дата останнього запису об’єкту

DateLastWrite

26

2

Молодший байт номеру першого кластеру, який був виділений об’єкту

FirstClusterLow

28

4

Розмір файлу в байтах

SizeFileInBytes

Якщо об’єкт іменується довгим ім’ям, то під нього виділяється декілька дескрипторів стандартного розміру (32б). Кількість дескрипторів визначається довжиною імені об’єкта. Максимальна довжина імені об’єкта – 255 символів, які зберігаються в форматі UNICODE (по два байти на один символ). У кожному дескриптору може зберігатися 13 символів імені об’єкту. Структура дескриптора для довгого імені наведена у табл. 2.9.

Таблиця 2.9 – Структура дескриптора для довгого імені

Зсув

Розмір, байт

Опис

Ім’я

0

1

Номер порції імені

fn

1

10

5 символів імені об’єкту

FiveSymb

11

1

Байт атрибутів, дорівнює 0Fh

attr

12

1

Завжди дорівнює 0

reserv

13

1

Контрольна сума короткого ім’я

CRC

14

12

6 символів імені об’єкту

SixSymb

26

2

Резерв

reserv2

28

4

2 символа імені об’єкту

TwoSymb

Ім’я в останній порції довгого імені може бути меншим за 13 символів. У такому випадку значима частина імені завершується нулем. усі інші поля імені заповнюються FFFF.

    1. Програмні структури

Всі необхідні програмні структури представлені в header- файлах. Ціль їхнього створення - організація даних, прочитаних з носіїв. Наприклад, кожний жорсткий диск буде представлений структурою

typedef struct _HARDINFO

{

char nHard; //номер жорсткого диску

void* hDrive; //хендл жорсткого диску

UINT dwSectorSize; //розмір сектора

UINT bitsPerSector; //кількість розрядів для адресації всередині сектора

UINT dwExtendedAddr; //адреса розширеного розділу

PLOGICAL_DISC disklist;

} HARDINFO, *PHARDINFO;

Інформація про розділи організується в список структур, по одному списку на кожний жорсткий диск:

typedef struct _LOGICAL_DISC

{

void* next;

char nHard;

char nDisc;

char active;

UINT abs_addr;

UINT secLength;

UINT id;

char* cpFS;

UINT SN4;

UINT gbLength;

UINT mbLength;

void* disc_info;

UINT prcfree;

} LOGICAL_DISC, *PLOGICAL_DISC, **PPLOGICAL_DISC;

Після того, як FAT32-розділ був відкритий для читання, інформація про нього записується в таку структуру

typedef struct _DISC_INFO {

char Disc; //логічний диск

UINT beginFAT; //адреса початку FAT-таблиці у секторах

UINT nBytePerSector; //розмір сектора у байтах

void* hDrive; //хендл відкритого розділу

char SectPerCluster; //розмір кластера в секторах

UINT BytesPerCluster; //розмір кластера в байтах

UINT sizeFAT; //розмір FAT-таблиці в секторах

UINT* pFAT; //адреса образу FAT-таблиці у ОЗУ

UINT sizeFATbytes; //розмір FAT-таблиці в байтах

USHORT nFATCopy; //кількість копій FAT

USHORT sizeReserved; //розмір зарезервованої області в секторах

UINT bitsPerSector; //кількість розрядів для адресації всередині сектора

UINT RootCluster; //номер першого кластера корневой директории

UINT dwRootDirSize; //кількість кластерів для кореневої директорії

HDIR hRootDir; //хендл кореневої директориії

UINT prcfree;

BOOL bFAT16;

UINT RootSector;

UINT nRootElements;

} DISC_INFO, *PDISC_INFO;

Список прочитаних файлів організується в структуру:

typedef struct _FILES {

char* ansiname;

UINT attrib;

UINT firstcluster;

__int64 filesize;

void* next;

} FILES, *PFILES;

Якщо необхідно вивести на екран уміст файлу, спочатку його вміст буде відображено в таку структуру:

typedef struct _FILEBUF {

char* pBuf;

char* ansiname;

UINT dwLen;

} FILEBUF, *PFILEBUF;

3 ОПИС АЛГОРИТМІВ ПЗ ФМ

У цьому пункті розглядаються послідовно алгоритми пошуку та іменування дисків, доступу до об’єктів файлової системи, визначення зайнятого місця для файлової системи FAT32, FAT16.

3.1 Алгоритм пошуку дисків й іменування дисків

Алгоритм іменування логічних дисків засновано на звіренні серійного номера, отриманого логічного диска із серійним номером, збереженим системою.


Рисунок 3.1 – Пошук та найменування дисків

3.2 Алгоритм доступу к об’єктам файлової системи

Основна концепція файлової системи FAT полягає в тім, що кожному файлу й каталогу виділяється структура даних, називана дескриптором. У цій структурі зберігається ім'я файлу, його розмір, початкова адреса вмісту файлу й інші метадані. Данні файлів і каталогів зберігається в блоках даних, називаних кластерами. Якщо файлу або каталогу виділяється більш одного кластера, інші кластери знаходять за допомогою структури даних, називаної FAT(File Allocation Table). Структура FAT використовується як для ідентифікації наступних кластерів у файлах, так і для визначення стану кластерів. Існує три версії FAT: FAT12, FAT16 і FAT32. Вони відрізняються друг від друга насамперед розміром запису у структурі FAT. Зв'язки між структурами даних показано на рис. 3.4.

Рисунок 3.4 – Зв’язки між структурами даних

Файлова система FAT ділиться на три фізичні області для FAT32, та на чотири для FAT12/16. Перша область називається зарезервованою; в FAT12 і FAT16 зарезервована область займає всього 1 сектор, але формально її розмір визначається в завантажувальному секторі. Друга область FAT - містить основні й резервні структури FAT. Вона починається в секторі, котрий розташовано за зарезервованою областю, а її розмір визначається кількістю й розміром структур FAT. Третя – кореневий каталог, для FAT12/16 починається за областю FAT, а у FAT32 має повільне положення у області даних. Область даних - містить кластери, виділені для зберігання файлів і вмісту каталогів.

Доступ до файлових об’єктів виконується з припущення, що відома адреса першого кластеру об’єкту.

У даній реалізації алгоритм доступу до об’єктів містить дві частини – алгоритм пошуку шляху до поточної директорії та алгоритм пошуку об’єктів у завантаженій директорії.

Алгоритм пошуку об’єктів в каталогі наведено на рис. 3.2

Алгоритм пошуку поточного шляху - рис.3.3

Рисунок 3.2 – Алгоритм пошуку об’єктів в каталогі

Рисунок 3.3 – Алгоритм пошуку поточного шляху

Характеристики

Тип файла
Документ
Размер
10,43 Mb
Учебное заведение
Неизвестно

Список файлов ВКР

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6537
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее