Дипломная работа: Розробка програмного забезпечення файлового менеджера

Рисунок 3.4 – Алгоритм визначення зайнятого місця


3.4 Алгоритм зрівняння директорій

Рисунок 3.5 – Алгоритм зрівняння директорій


4 ОПИС ПРОГРАМНИХ МОДУЛІВ

Точка входу знаходиться у модулі з назвою manager.cpp. Після автоматичної ініціалізації графічного інтерфейсу (все це відбувається за рахунок VCL), виконується пошук і іменування всіх логічних дисків. Код, відповідальний за це, знаходиться в модулі mbrmodule.cpp. Далі, якщо знайдено завантажувальний розділ і, якщо файлова система на ньому є однією з підтримуваних, виконується пошук усіх файлів у кореневому каталозі. Якщо файлова система розділу - FAT або FAT32 то робиться це за допомогою модуля fat32.cpp. Якщо файлова система – NTFS, то пошук виконується невеликими функціями, описаними, безпосередньо, у головному модулі (manager.cpp, на таку структуру вже наголошувалося раніше). Інші файлові системи не підтримуються.

Короткий опис ключових функцій:

PHARDINFO Init(char n);

Функція виконує всі попередні дії, необхідні для подальшої роботи з жорстким диском(виклик CreateFіle(), визначення розміру сектора й т.д.). У випадку невдачі повертає NULL.

BOOL WalkOnMBR(PHARDINFO inf, PPLOGICAL_DISC first);

Функція проходить по ланцюжку MBR жорсткого диска, попередньо відкритого функцією Іnіt

void DeInit(PHARDINFO inf);

Звільняє зайняту структурами пам'ять і закриває дескриптор жорсткого диска

PDISC_INFO Fat32Init(char disc);

Виконує всі необхідні попередні дії для роботи з логічним диском, файлова система котрого FAT або FAT32 (зчитування таблиці FAT, визначення кластера кореневого каталогу та ін.)

UINT GotoDir(PDISC_INFO info, char* cpPath);

Повертає номер кластера виходячи зі шляху до директорії

UINT ListDirectory(PDISC_INFO info, HDIR hDir,UINT dwDirSize,char* cpObjectName, PFILES* ppfiles);

Виконує побудова списку файлів у директорії або пошук елемента каталогу в ній.

PFILES PrintRootDirectory(PDISC_INFO info);

Пошук всіх файлів у кореневому каталозі

HDIR LoadDirectory(PDISC_INFO info, UINT cluster, UINT* dirsize);

Завантажує вміст зазначеного ланцюжка кластерів на згадку

char* Fat32ReadFile(PDISC_INFO info, UINT FirstCluster, UINT* dwFileSize);

Читає вміст файлу, перший кластер котрого відомий

void Fat32DeInit(PDISC_INFO info);

Звільняє зайняту пам'ять і закриває дескриптори.

void AnalyzeError(char* comment, int iErr);

Виконує аналіз помилки, що відбулася, результати виводить в MessageBox головного вікна

К-во Просмотров: 687
Бесплатно скачать Дипломная работа: Розробка програмного забезпечення файлового менеджера