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

Автор работы: Пользователь скрыл имя, 07 Сентября 2014 в 22:54, курсовая работа

Описание работы

Актуальность исследования сведена к тому, что в настоящее время широкое распространение получили многочисленные локальные сети в самом разнообразном виде: от коммутации двух, рядом расположенных, компьютеров до вычислительных систем со сложной системой прав доступа к отдельным ресурсам сети и т.д. Естественно появляется проблема о наиболее удобном и рациональном способе хранении данных и получении возможности ими воспользоваться. Данный вопрос достаточно значим, т.к. безопасность и в тоже время интуитивно понятный интерфейс играют большую роль в процессе разработки и внедрения программы в структуру сети. Эту проблему решают файловые менеджеры. Основной задачей таких программ является предоставление удобного интерфейса для работы с файлами. Оболочки для работы с файлами написаны для многих операционных систем таких как: Windows, Linux, MS DOS, UNIX, OS\2 и т.д.

Файлы: 1 файл

2 КР текст .doc

— 461.00 Кб (Скачать файл)

Основным достоинством объектно-ориентированного программирования по сравнению с модульным программированием является «более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку. Это приводит к более полной локализации данных и интегрированию их с подпрограммами обработки, что позволяет вести практически независимую разработку отдельных частей (объектов) программы. Кроме этого, объектный подход предлагает новые способы организации программ, основанные на механизмах наследования, полиморфизма, композиции, наполнения. Эти механизмы позволяют конструировать сложные объекты из сравнительно простых. В результате существенно увеличивается показатель повторного использования кодов и появляется возможность создания библиотек классов для различных применений.

Учитывая специфику компьютерной программы «Файловый Менеджер», будем проектировать однопользовательскую архитектуру, при которой программное обеспечение рассчитано на одного пользователя, работающего за компьютером.

В предыдущем параграфе мы остановились на пользовательском интерфейсе с визуальными объектами и подсказками, при которых возможна реализация множества сценариев, операции которых предполагают определение множества возможных операций на конкретном шаге работы. Объектно-ориентированные визуальные среды разработки программного обеспечения позволяют сделать это. Объектно-ориентированные среды программирования основываются на понятии объекта как замкнутой независимой сущности, взаимодействующей с внешним миром через строго определенный интерфейс в виде перечня сообщений, которые объект может принимать. Объект обладает свойствами, поведением и состоянием. Объекты с одинаковыми свойствами поведением объединяются в классы. Программа на объектно-ориентированном языке представляет собой совокупность описаний классов. Классы, в свою очередь представляют собой описание свойств и поведения составляющих их объектов. Свойства представляются другими, как правило, более простыми объектами. Поведение описывается обменивающимися сообщениями [15].

Разработка программ по объектно-ориентированной технологии сводится к созданию новых классов, их тестированию и включению в состав объектно-ориентированной среды разработки [9].

Поскольку выбран интерфейс с визуальными объектами, что предполагает использование событийного программирования и объектного подхода, то современные среды визуального программирования, такие как Visial C++, Borland Delphi 7.0.,Borland C++ Builder и им подобные являются самыми подходящими для решения поставленной задачи.

Сегодня между этими средами существуют различия: визуальные среды фирмы Microsoft обеспечивают более низкий уровень программирования «под Windows». Это является их достоинством и недостатком. Достоинством – так как уменьшается вероятность возникновения «нестандартной ситуации» т.е. ситуации, не предусмотренной разработчиками библиотеки компонентов, а недостатком – так как это существенно загружает программиста «рутинной» работой, от которой избавлен программист, работающий с Delphi или C++ Builder [18].

В Borland Delphi 7.0 скомбинировано несколько важных технологий [6]:

  • высокопроизводительный компилятор в машинный код;
  • объектно-ориентированная модель компонент;
  • визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов [10, 258].

Для разработки программного продукта остановимся на универсальной среде программирования Borland Delphi 7.0. и, как следствие, на языке программирования Delphi.

На наш взгляд Delphi, относительно, прост и логичен. Основные конструкции языка четко выделяются в программе, что способствует хорошему написанию написанного кода. Графический интерфейс Delphi отлично продуман, а среда разработки предоставляет доступ только к тем участкам кода, с которыми необходимо работать, скрывая основную часть программы, которая создается автоматически самой средой разработки.

По итогам проведённого нами исследования мы сделали свой выбор в пользу объектно-ориентированной технологии программирования, среды разработки Borland Delphi 7.0. и языка программирования Delphi.

 

1.3 Проектирование структуры программы и взаимодействия модулей

Программа на Delphi – это командный код, задача которого – вызвать на экран форму и обслуживающей ее модуль [11].

Форма – представляет собой окно, на котором можно визуально, при помощи мыши, редактировать интерфейс будущей программы, расставляя по ней разнообразные элементы интерфейса (например, меню, кнопки, картинки, окна ввода данных и т.д.) [9].

Чтобы настроить параметры этих элементов-объектов (например, имя кнопки или главной форме), будем использовать окно инспектора объектов.

После того, как это сделано, интерфейс будет готов к работе, и нам останется только определить нестандартные действия нашей программы. Это мы сделаем в модуле.

Модулем называют автономно компилируемую программную единицу.

Термин «модуль» традиционно используется в двух смыслах. Первоначально, когда размер программ был сравнительно невелик, и все подпрограммы компилировались отдельно, под модулем понималась подпрограмма, т.е. последовательность связных фрагментов программы, обращение к которой выполняется по имени. Со временем, когда размер программ значительно вырос, и появилась возможность создавать библиотеки ресурсов: констант, переменных, описаний типов, классов и подпрограмм, термин «модуль» стал пользоваться и в смысле автономно компилируемый набор программных ресурсов [14].

Данные модуль может получать и возвращать через общие области памяти. Первоначально к модулям (еще понимаемым как подпрограммы) предъявлялись следующие требования [3] :

  • отдельная компиляция;
  • одна точка входа;
  • одна точка выхода;
  • соответствие принципу вертикального управления;
  • возможность вызова других модулей;
  • небольшой размер (до 50-60 операторов языка);
  • независимость от истории вызовов;
  • выполнение функции.

Требования одной точки входа, одной точки выхода, независимости от истории вызовов и соответствия принципу вертикального управления были вызваны тем, что в то время из-за серьезных ограничений на объем оперативной памяти программисты были вынуждены разрабатывать программы с максимально возможной повторяемостью кодов. В результате подпрограммы, имеющие несколько точек входа и выхода, были не только обычным явлением, но и считались высоким классом программирования. Следствием же было то, что программы было очень сложно не только модифицировать, но и понять, а иногда и просто полностью отладить.

Со временем, когда основные требования структурного подхода стали поддерживаться языками программирования, и под модулем стали понимать отдельно компилируемую библиотеку ресурсов, требование независимости модулей стало основным.

Любой логически завершенный алгоритм должен представлять собой модуль (функцию), в котором все входные данные и результат работы передаются через заголовок (программный интерфейс) [2].

Представление алгоритма решения задачи в виде подзадач называется процедурной декомпозицией. В соответствии с объектно-ориентированной технологией была проведена декомпозиция предметной области на объекты и разработана структурная схемы программы (Рис.1).

Рис.1 Структурная схема программы.

На (Рис.1) показано, как и какие объекты будут располагаться на форме программного продукта «Файловый менеджер». Итак, давайте рассмотрим, какие функции будут выполнять эти объекты.

 Frames1- фрейм, где будут располагаться элементы-объекты навигации Button.

Frames2- фрейм, служащий для компоновки объектов, создающих в целом отдельное рабочее пространство, предназначенное для отображение файлов директорий.  В это рабочее пространство входят  следующие объекты:

DriveComboBox – отображает список устройств внешней памяти (тома жёсткого диска, сетевые диски, USB-флешки и т.д).

Label1- будет выводить информацию о выбранном устройстве внешней памяти (объём носителя информации и количество свободного места на этом носителе).

TreeView –объект, в котором будут отображаться файлы и каталоги выбранных в DriveComboBox носителей информации.

Label2- поле вывода информации, где будет отображаться полный путь к директории, из которой подгружаются файлы в  TreeView.

Функциональное назначение и объектное содержание Frames3 аналогично Frames2.

В ходе разработки программного продукта будут созданы следующие модули:

  • Project1.dpr, для подключения всех модулей в одну программу;
  • Unit1.pas, позволяет запустить основную форму, в которой пользователь, может приступить к работе с «Файловым менеджером»;
  • Unit2.pas, модуль для вспомогательных процедур и функций;

Программирование в среде Delphi предполагает соблюдение принципа модульности, поэтому при разработке программного продукта, для понимания взаимодействия отдельных модулей, на основе структурной схемы составлена функциональная схема (Рис.2).

Рис.2. Функциональная схема программного продукта

Таким образом, мы определили структуру программы и взаимодействие составляющих модулей, что позволяет перейти к непосредственной разработке приложения в среде Borland Delphi 7.0.

 

РАЗДЕЛ 2. Описание и функциональные возможности программного приложения «Файловый менеджер»

2.1. Особенности построения и работы алгоритма

В процессе выполнения курсовой работы мы разработали программное приложение «Файловый менеджер», выполняющее над объектами файловой системы компьютера следующие действия: создание, открытие, перемещение, копирование. Интерфейс программы состоит из двух панелей, в которых отображается текущая файловая структура выбранного диска или директории. Между панелями организована возможность обмена информацией. Список файлов, отображается в компоненте TListView, перед показом пользователю сортируется: сначала список папок, после оставшиеся файлы. При двойном щелчке по каталогу из списка TListView пользователь переходит вверх к выбранному каталогу, либо вниз, если щелчок был произведен на первом компоненте списка. При выборе в списке файлов, их открытие производится при помощи той же программы, которая ассоциирована с файлом данного типа в Windows.

Ниже списка файлов располагается компонент TStatusBar, в котором отображается количество элементов текущего диска или директории.

На панели навигации расположено шесть кнопок, функциями которых являться открытие, копирование, перемещение, удаление файлов или каталогов, создание каталогов и кнопка выхода из программы.

Каждому компоненту TListView в соответствии находиться компонент TDriveComboBox, функциями которого является выбор логического или физического диска компьютера для отображения его файловой структуры в списке. Также в проекте размещено два компонент TLabel, которые отображают текущий путь к директории, из которой загружен список файлов.

Теперь остановимся по подробнее на каждой из основных процедур программы начнём с процедуры вывода списка файлов и каталогов. Изначально необходимо знать путь (диск и каталог) к своему текущему местоположению, эту информацию следует хранить отдельной строкой (у нас это будет переменная CurrentFullPath, причем она обязательно должна заканчиваться на символ обратной косой черты “\” - backslash). Все манипуляции осуществляются с файлами относительно этого пути.

Программа должна получить в свое распоряжение содержимое текущего каталога. Это можно осуществить несколькими способами:

  • вручную найти все элементы с помощью процедур FindFirst и FindNext;
  • использовать компонент FileListBox закладки Win 3.1;

Мы применили второй способ, поэтому рассмотрим его подробней. На форме располагается компонент FileListBox , назовем его flbxFiles, и делается невидимым. Его свойство FileType устанавливается в [ftReadOnly, ftHidden, ftSystem, ftArchive, ftDirectory, ftNormal]. Это заставляет компонент отображать файлы всех типов, а также каталоги. Если теперь изменять свойство Directory, указать необходимы нам путь, то компонент будет выводить полный список всех файлов и каталогов по заданному пути. Но на экран эта информация не отображается, так как мы сделали flbxFiles невидимым, но появится возможность использовать её в своих целях. Свойство Items содержит список файлов, но без указания пути. Заметим что имена каталогов обрамляются квадратными скобками (например папка “TEMP” будет выглядеть как “[TEMP]”). Также в списке могут присутствовать каталоги, обозначенные как “[.]” и “[..]”, они обозначают текущий каталог и переход на уровень вверх, если это возможно. Перебрав все элементы, Items, мы получим необходимый нам список, но по нему нельзя определить, является ли конкретный элемент файлом или каталогом (квадратные скобки не являются надежным идентификатором). Следует поступить следующим образом:

  • считать элемент из Items;
  • проверить существование такового файла (функция FileExists). Если файл существует, значит это требуемый файл. Выходим;
  • если файл не существует (значит это каталог), удалим из имени каталога обрамляющие скобки;

Вот пример кода GetAndShowFiles:

ChDir(CurrentFullPath);

FlbxFiles.Directory:=CurrentFullPath;

For i:=0 To flbxFiles.Items.Count-1 Do

Begin  {переберем все элементы  из flbxFiles}

  FileName:=flbxFiles.Items[i];

  If FileExists(FileName) Then

  Begin {FileName оказался файлом}

    {...выполним необходимые действия...}     End;

  Else Begin {FileName оказался директорией}

Информация о работе Файловый менеджер