Завдання на курсову роботу:
Розробка файлового менеджера. (Аналог Far Manager, Total Commander і т.п.).
Зміст
Завдання на курсову роботу
Введення
1. Аналітична частина
2. Теоритическая частина
2.1 Глобальні змінні
2.2 Користувальницькі функції
3. Конструкторська частина
3.1 Додаткові можливості
3.1.1 Копіювання/переміщення перетягуванням
3.1.2 Робота з дискетами і дисками
3.1.3 Властивості файлів, папок і дисків
4. Технічна документація
5. Експериментальна частина
Висновок
Список використаної літератури
Введення
Жодна операційна система на сьогоднішній день не може обійтися без зручного і надійного файлового менеджера. Величезна кількість наростаючих з кожним днем ​​даних потребує грамотної структуризації і поділі. Не дарма всі сучасні операційні системи, як правило, включають в свій склад, в першу чергу, саме файловий менеджер, як невід'ємну частину самої ОС і необхідний компонент для реалізації всіх можливостей з доступу до файлової системи. При цьому такий доступ повинен задовольняти багатьом, часто протилежним умовам, до яких відносяться: можливість швидкого пошуку і відображення потрібної інформації, повнота операцій над цими даними, гарантоване виключення помилок при цих операціях, простота і т.д.
Наявність файлового менеджера в самих ОС не зупиняє користувачів в пошуках програми В«для себеВ». У даній програмі зроблена спроба об'єднати тільки самі потрібні для користувача функції по роботі з файловою системою в наочному і простому вигляді. Включення всіх можливих операцій не було головною метою автора програми, основне завдання - Необхідний мінімум у поєднанні з простотою. Програма реалізує в собі всі способи взаємодії з користувачем і іншими програмами, що надаються операційним середовищем Windows, як то: робота з буфером Clipboard, переміщення і копіювання за допомогою перетягування (Drag'n'Drop), контекстні меню, панель управління та ін
Даний файловий менеджер не претендує на звання самого зручного або самого повного, а лише відображає погляд автора на те, яким повинен бути простий, але разом з тим функціональний провідник по файловій системі. Доступ до інформації про систему повністю здійснюється через API Windows, що робить програму легко переноситься серед ОС цього класу. Програма написана в середовищі Microsoft Visual Studio 2008.
1. Аналітична частина
Основною концепцією стало зосередження максимуму інформації в одному вікні таким чином, щоб забезпечити простий і швидкий перехід по ієрархічній файловій системі. Для цього головне вікно програми було розбите подумки на 4 частини: ієрархічне вікно папок, послідовний список файлів, керуючі меню і панель і вікно інформації (панель стану). Всі ці компоненти безумовно пов'язані між собою і виконують спільне завдання - найбільш повне відображення інформації.
Дерево папок являє собою об'єкт класу TTreeView, в який програмним чином завантажується ієрархічна файлова структура носіїв інформації ПК. Даний компонент повинен забезпечити швидкий доступ до окремих контейнерів (папках, директоріях, дискам) файлової системи, коренем дерева служить віртуальний компонент В«Мій комп'ютерВ», що замикає на собі всі диски. Список файлів представлений об'єктом класу TListView і містить список вмісту, активізованої в даний момент в дереві директорії. При цьому зв'язок між списком і деревом не тільки пряма, але й зворотна - відкриття вкладених папок у списку тягне за собою послідовне розкриття дерева. Список містить досить повну інформацію про файл (вкладеної директорії), починаючи з імені і закінчуючи датою створення. Дерево і список взаємодіють між собою і в процесі обміну файлами за допомогою перетягування. Перетягування може здійснюватися як у межах одного компонента (папки в папку в TreeView, файлу в папку в ListView), так і між компонентами.
Меню (клас TMainMenu) і панель управління (клас TControlBar) реалізують набір операцій над елементами файлової системи: створення папки, копіювання, видалення, вирізання та т.д. А, крім того, дозволяють змінювати саме відображення цих елементів, а також порядок їх сортування, що в деяких випадках буває вкрай корисно. Важливим властивістю елементів управління є їх інтерактивність - ті команди, які в поточних обставинах не можуть бути виконані, ховаються або відображаються в елементах бляклим кольором. До компонентів управління слід віднести і контекстне меню, підміняти пункти головного і дозволяє не відволікатися від списку і дерева шляхом звернення до нього натисканням правої клавіші.
Нарешті інформаційна панель (панель стану, статусу) (клас TStatusBar) жорстко пов'язана зі списком файлів і відображає кількість елементів, а також вільне місце на диску.
Отже, всі компоненти хоча і графічно розділені, але логічно пов'язані між собою в будь-який момент часу, що дозволяє користувачеві не відволікатися від головного завдання - доступу до деякого елементу файлової системи і виконання операції над ним. Саме тому була обрана така структура програми (панель папок - панель файлів) в противагу організації двох списків файлів в стилі Norton Commander, адже робота з однією з панелей повністю автономна по відношенню до іншої. Доступ до глибоко лежачим в структурі об'єктам в такій системі, на думку автора незручна, на відміну від використання панелі папок, яка дозволяє за кілька клацань дістатися до будь-якого контейнера. До того ж саме структура В«папки - списокВ» дозволяє логічно організувати роботу з об'єктами у стилі Drag'n'Drop.
2. Теоритическая частина
Всі операції при реалізації програми були свідомо винесені з обробників подій в окремі функції-члени класу, для зручності їх виклику з будь-яких місць програми і більшою структурованості коду. Тому більшу увагу при описі реалізації буде приділено саме таким функція, а не обробникам подій, які лише містять їх виклики.
2.1 Глобальні змінні
Код програми містить ряд глобальних змінних, що зберігають інформацію про стан її виконання: вигляді відображення значків, вставлених дисках, відсортованої колонці і т.д.
Дані про встановлені жорстких дисках і приводів дискет зберігають 2 змінні - set_drive_num і DiskIn, причому перша містить номери присутніх приводів, друга ж імена тих з них, в які вставлена ​​дискета або оптичних диск, що дозволяє динамічно відслідковувати порожні приводи й забороняти звернення до них.
Ряд змінних зберігає інформацію про стані переліку файлів і папок ListView1: CurrentDir - назва поточного каталогу, StyleListView - стиль відображення значків (список, таблиця ...), ColumnToSort - номер сортовані колонки, Direct - напрямок сортування (пряме, зворотне).
Змінна type_file_operation_drag_drop вказує на необхідність копіювання або переносу файлу при перетягуванні, що визначається по натисненню відповідних функціональних клавіш, а установкою DragnDrop в брехню можна зовсім заборонити всякі операції за допомогою переносу.
2.2 Користувальницькі функції
I. Допоміжні функції: void FirstUpOtherDown (char) та void FirstUpOtherDown (AnsiString).
Здійснюють зміна регістру букв переданих в якості параметра рядків таким чином, щоб всі символи мали нижній регістр, крім першого символу. Використовуються при додаванні елементів в список і дерево для вирівнювання букв в назві файлів, папок.
II. Функції пошуку й відображення, що містяться в системі носіїв даних і приводів: void GetDrives () і void ShowDrives ().
Функція GetDrives здійснює первинний пошук носіїв і здійснює завантаження їх номерів в глобальну змінну. Само відображення виконується в ShowDrives, де крім аналізу отриманої інформації здійснюється побудова назви диска, виходячи з його номера та імені мітки. Ви...