Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Файловый менеджер

Тип Реферат
Предмет Информатика и программирование
Просмотров
1223
Размер файла
97 б
Поделиться

Ознакомительный фрагмент работы:

Файловый менеджер

Задание на курсовую работу:

Разработка файлового менеджера. (Аналог FarManager, TotalCommander и т.п.).


Оглавление

Задание на курсовую работу

Введение

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), контекстные меню, панель управления и др.

Данный файловый менеджер не претендует на звание самого удобного или самого полного, а лишь отражает взгляд автора на то, каким должен быть простой, но вместе с тем функциональный проводник по файловой системе. Доступ к информации о системе полностью осуществляется через APIWindows, что делает программу легко переносимой среди ОС этого класса. Программа написана в среде Microsoft Visual Studio 2008.


1. Аналитическая часть

Основной концепцией стало сосредоточение максимума информации в одном окне таким образом, чтобы обеспечить простой и быстрый переход по иерархической файловой системе. Для этого главное окно программы было разбито мысленно на 4 части: иерархическое окно папок, последовательный список файлов, управляющие меню и панель и окно информации (панель состояния). Все эти компоненты безусловно связаны между собой и выполняют общую задачу – наиболее полное отображение информации.

Дерево папок представляет собой объект класса TTreeView, в который программным образом загружается иерархическая файловая структура носителей информации ПК. Данный компонент должен обеспечить быстрый доступ к отдельным контейнерам (папкам, директориям, дискам) файловой системы, корнем дерева служит виртуальный компонент «Мой компьютер», замыкающий на себе все диски. Список файлов представлен объектом класса TListViewи содержит список содержимого, активизированной в данный момент в дереве директории. При этом связь между списком и деревом не только прямая, но и обратная – открытие вложенных папок в списке влечет за собой последовательное раскрытие дерева. Список содержит довольно полную информацию о файле (вложенной директории), начиная с имени и заканчивая датой создания. Дерево и список взаимодействуют между собой и в процессе обмена файлами посредством перетаскивания. Перетаскивание может осуществляться как в пределах одного компонента (папки в папку в TreeView, файла в папку в ListView), так и между компонентами.

Меню (класс TMainMenu) и панель управления (класс TControlBar) реализуют набор операций над элементами файловой системы: создание папки, копирование, удаление, вырезание и т.д. А, кроме того, позволяют изменять само отображение этих элементов, а также порядок их сортировки, что в некоторых случаях бывает крайне полезно. Важным свойством элементов управления является их интерактивность – те команды, которые в текущих обстоятельствах не могут быть выполнены, скрываются или отображаются в элементах блеклым цветом. К компонентам управления следует отнести и контекстное меню, подменяющее пункты главного и позволяющее не отвлекаться от списка и дерева путем обращения к нему нажатием правой клавиши.

Наконец информационная панель (панель состояния, статуса) (класс TStatusBar) жестко связана со списком файлов и отображает количество элементов, а также свободное место на диске.

Итак, все компоненты хотя и графически разделены, но логически связаны между собой в любой момент времени, что позволяет пользователю не отвлекаться от главной задачи – доступа к некоторому элементу файловой системы и выполнения операции над ним. Именно поэтому была выбрана такая структура программы (панель папок – панель файлов) в противовес организации двух списков файлов в стиле NortonCommander, ведь работа с одной из панелей полностью автономна по отношению к другой. Доступ к глубоко лежащим в структуре объектам в такой системе, по мнению автора неудобна, в отличие от использования панели папок, которая позволяет за несколько щелчков добраться до любого контейнера. К тому же именно структура «папки – список» позволяет логично организовать работу с объектами в стиле 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, где помимо анализа полученной информации осуществляется построение названия диска, исходя из его номера и имени метки. Определение типа привода позволяет загрузить соответствующее изображение, а точнее выбрать его из списка изображений ImageList.

III. Функции добавления элементов (записей, узлов) в дерево и список файлов: TTreeNode* AddChildInNodeTree(TTreeNode, AnsiString), TListItem *AddItemInListView (TSearchRec, AnsiString).

Функция добавления записи в дерево осуществляет вставку потомка для переданного в функцию узла. Осуществляется настройка свойств вставляемого элемента: пути к нему (свойство Data), значка (свойство ImageIndex и SelectedIndex), имени (свойство Name).

Функция добавления записи в список извлекает из переданной структуры TSearchRec необходимые элементы – дату, название, а также сама осуществляет поиск дополнительной информации API функцией SHGetFileInfo – название типа и значок, соответствующий типу файла. В итоге функция осуществляет полное формирование строки и возвращает указатель на нее.

IV. Функции формирования дерева: voidViewChild(TTreeNode *), voidDeleteChild(TTreeNode* Node) и вспомогательная функция boolCheckExpandedChild(TTreeNode *).

Основная идея формирования дерева – нет необходимости в полном его построении в начале выполнения программы, что, безусловно, сокращает время на запуск и уничтожает необходимость в обходе всех папок на диске. В этой ситуации возникает проблема динамического построения дерева во время его раскрытия – свертывания. Реализацией этой идеи и стали функции ViewChildи DeleteChild. Первая принимает в качестве параметра указатель на раскрываемый узел, который использует для обхода всех его потомков (вложенных папок узла) и благодаря которому находит для этих потомков свои вложенные папки. При обходе для этих вложенных папок добавляются соответствующие узлы. Таким образом, в целом функция предназначена для добавления в дерево потомков потомков (внуков) раскрываемых узлов. Это позволяет вовремя добавлять узлы, тем самым, скрывая неполноту дерева. Необходимость наличия при раскрытии узла именно внуков, а не только детей связана с тем, что в раскрытой ветви, составленной из детей, уже должно быть очевидно наличие возможного продолжения раскрытия.

Функция DeleteChild выполняет обратную операцию – удаляет внуков сворачиваемого узла, тем самым предостерегается возможность двукратного дополнения узла в дерево.

Из этих правил есть одно исключение – ситуация, когда среди потомков сворачиваемого узла есть развернутые ветви. Удаление внуков в этом случае приведет к нарушению структуры дерева (развернутые внутри сворачиваемого узла узлы будут свернуты). Проверку такой ситуации осуществляет функция CheckExpandedChild – она возвращает true в случае наличия хотя бы одного развернутого потомка у переданного в качестве параметра узла.

V. Функция формирования списка файлов и каталогов: void ViewFailAndFolderInListView (AnsiString dir).

Задача функции проста: вывести на экран содержание переданной по параметру папки dir. Порядок ее осуществления: очистка списка, поиск файлов (папок) в указанном каталоге функциями FindFirst, FindNext, FindClose, добавление соответствующих найденным файлам записей вышеописанной функцией AddItemInListView, сохранение текущего каталога, обновление статусной панели информации.

VI. Функция выполнения операций над файлами intFileAndFolderOperation(char *frombuf, char *tobuf, unsignedintoperation) и вспомогательная функция формирования строки-списка файлов void PrepareBufForOperationInListView(char * &).

Функция FileAndFolderOperationвыполняет простую операцию – согласно полученным данным: символьному массиву «откуда копировать» frombufи массиву «куда копировать» tobuf, а также коду операции заполняет структуру SHFILEOPSTRUCT и передает ее на обработку API функции SHFileOperation, а также возвращает результат ее выполнения.

Самой сложной частью выполнения операций над файлами является заполнение символьной строки frombuf, особенно для ListView, т.к. позволяется выделение целой группы файлов и папок. Буфер же frombuf должен содержать пути ко всем объектам, разделенные символом ‘


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно