Структура завантажувального запису, службової області FAT, елемента каталогу. Код програми файлового менеджеру. Алгоритм пошуку дисків й іменування дисків, доступу к об"єктам файлової системи, визначення зайнятого місця на розділі, зрівняння директорій.
Метою даного проекту є практичне дослідження та засвоєння прийомів роботи з дисковими накопичувачами у середовищі ОС Windows та роботи на низькому рівні з файловими системами FAT16/FAT32.Файловий менеджер - програма, яка виконує візуалізацію вмісту каталогу, дозволяє виконувати різноманітні операції з обєктами каталогу, наприклад, копіювання, видалення, правка та інші. Файловий менеджер, який був розроблений згідно з завданням до проекту виконує наступні функції: - пошук і найменування всіх логічних дисків у межах даної конфігурації технічних засобів; Згідно зі структурою файловий менеджер має інтерфейс, в якому можна обрати наступну дію. Виключення із загального правил являє собою модуль manager.cpp, який реалізує як інтерфейс (за правилами створення VCL) так і роботу з NTFS та порівняння директорії. При старті програми спочатку створюється інтерфейс користувача, виконується пошук усіх логічних дисків в межах даної конфігурації технічних засобів, відбувається найменування усіх знайдених дисків.Також програма містить і власні структури - інформація про логічні диски та інші. Інформація про розділи жорсткого диску зберігається у першому секторі пристрою. Один елемент Partition Table може визначати логічний диск або розширений розділ. Заповнення полів Partition Table виконується на етапі розбивання диска на розділи. 6-бітний номер сектору визначається як 6 молодших бітів молодшого байту, а 10-бітний номер циліндру, як 2 старші біти молодшого байту та розташовані за ним 8 бітів старшого байту starttrackПісля отримання абсолютної адреси початку логічного диска в програмі виконується зчитування першого сектора диска. BOOT - область містить параметри та характеристики логічного диска. Таблиця 2.3 - Структура BOOT - сектору для FAT12 та FAT16 Назва операційної системи, у якій виконано форматування диску os BOOT-область в файлових системах FAT12,16 займає 1 сектор, а в ФС FAT32 - 3 сектори.Структура дескриптора обєкта з коротким імям наведена у табл. Ознака дескриптору: 0 - вільний; E5h - видалений; інше-перший символ імені обєкту fn 7 символів імені обєкту name Максимальна довжина імені обєкта - 255 символів, які зберігаються в форматі UNICODE (по два байти на один символ). У кожному дескриптору може зберігатися 13 символів імені обєкту.Наприклад, кожний жорсткий диск буде представлений структурою typedef struct _HARDINFO {char NHARD; //номер жорсткого диску void* HDRIVE; //хендл жорсткого диску Інформація про розділи організується в список структур, по одному списку на кожний жорсткий диск: typedef struct _LOGICAL_DISC Після того, як FAT32-розділ був відкритий для читання, інформація про нього записується в таку структуру typedef struct _DISC_INFO {char Disc; //логічний диск UINT NBYTEPERSECTOR; //розмір сектора у байтах void* HDRIVE; //хендл відкритого розділу char SECTPERCLUSTER; //розмір кластера в секторахУ цьому пункті розглядаються послідовно алгоритми пошуку та іменування дисків, доступу до обєктів файлової системи, визначення зайнятого місця для файлової системи FAT32, FAT16.Алгоритм іменування логічних дисків засновано на звіренні серійного номера, отриманого логічного диска із серійним номером, збереженим системою.Основна концепція файлової системи FAT полягає в тім, що кожному файлу й каталогу виділяється структура даних, називана дескриптором. У цій структурі зберігається імя файлу, його розмір, початкова адреса вмісту файлу й інші метадані. Якщо файлу або каталогу виділяється більш одного кластера, інші кластери знаходять за допомогою структури даних, називаної FAT(File Allocation Table). Структура FAT використовується як для ідентифікації наступних кластерів у файлах, так і для визначення стану кластерів. Існує три версії FAT: FAT12, FAT16 і FAT32.Визначення зайнятого місця на розділі реалізується шляхом аналізу таблиці FAT. Виконується перевірка усіх елементів таблиці FAT. Ці елементи в файловій системі ідентифікують незайняте місце.Рисунок 3.5 - Алгоритм зрівняння директорійПісля автоматичної ініціалізації графічного інтерфейсу (все це відбувається за рахунок VCL), виконується пошук і іменування всіх логічних дисків. Далі, якщо знайдено завантажувальний розділ і, якщо файлова система на ньому є однією з підтримуваних, виконується пошук усіх файлів у кореневому каталозі. Якщо файлова система - NTFS, то пошук виконується невеликими функціями, описаними, безпосередньо, у головному модулі (manager.cpp, на таку структуру вже наголошувалося раніше). Функція виконує всі попередні дії, необхідні для подальшої роботи з жорстким диском(виклик CREATEFILE(), визначення розміру сектора й т.д.). Виконує всі необхідні попередні дії для роботи з логічним диском, файлова система котрого FAT або FAT32 (зчитування таблиці FAT, визначення кластера кореневого каталогу та ін.)Для навігації серед елементів каталогу та серед списку логічних дисків використовуються дії миші.Відразу після запуску формується інтерфейс користувача й виводиться вміст кореневого каталогу активного розділу. Виводиться наступна інформація про фа
План
ЗМІСТ
ВСТУП
1 СТРУКТУРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ФАЙЛОВОГО МЕНЕДЖЕРУ
2 СТРУКТУРА ДАНИХ
2.1 Стуктури завантажувального запису
2.2 Структура службової області FAT
2.3 Структура елемента каталогу
2.4 Програмні структури
3 ОПИС АЛГОРИТМІВ ПЗ ФМ
3.1 Алгоритм пошуку дисків й іменування дисків
3.2 Алгоритм доступу к обєктам файлової системи
3.3Алгоритм визначення зайнятого місця на розділі
3.4 Алгоритм зрівняння директорій
4 ОПИС ПРОГРАМНИХ МОДУЛІВ.
5 МЕТОДИКА РОБОТИ
6 ДОСЛІДЖЕННЯ РЕЗУЛЬТАТІВ
ВИСНОВОК
ДОДАТОК А - Код програми файлового менеджеру
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы