БОЛЬШАЯ НАУЧНАЯ БИБЛИОТЕКА  
рефераты
Добро пожаловать на сайт Большой Научной Библиотеки! рефераты
рефераты
Меню
Главная
Налоги
Начертательная геометрия
Оккультизм и уфология
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование и комп-ры
Радиоэлектроника
Региональная экономика
Режущий инструмент
Реклама и PR
Ресторанно-гостиничный бизнес бытовое обслуживан
Римское право
Русский язык культура речи
РЦБ ценные бумаги
САПР
Сексология
Семейное право
Социология
Страховое право
Строительство архитектура
Таможенное право
Теория государства и права
Технология
Таможенная система
Транспорт
Физика и энергетика
Философия
Финансы деньги и налоги
Физкультура и спорт
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика и эстетика
Сочинения по литературе и русскому языку
Рефераты по теории государства и права
Рефераты по теории организации
Рефераты по теплотехнике
Рефераты по товароведению
Рефераты по трудовому праву
Рефераты по туризму
Рефераты по уголовному праву и процессу
Рефераты по управлению
Рефераты по менеджменту
Рефераты по металлургии
Рефераты по муниципальному праву
Биографии
Рефераты по психологии
Рефераты по риторике
Рефераты по статистике
Рефераты по страхованию
Рефераты по схемотехнике
Рефераты по науке и технике
Рефераты по кулинарии
Рефераты по культурологии
Рефераты по зарубежной литературе
Рефераты по логике
Рефераты по логистике
Рефераты по маркетингу
Рефераты по международному публичному праву
Рефераты по международному частному праву
Рефераты по международным отношениям
Рефераты по культуре и искусству
Рефераты по кредитованию
Рефераты по естествознанию
Рефераты по истории техники
Рефераты по журналистике
Рефераты по зоологии
Рефераты по инвестициям
Рефераты по информатике
Исторические личности
Рефераты по кибернетике
Рефераты по коммуникации и связи
Рефераты по косметологии
Рефераты по криминалистике
Рефераты по криминологии
Новые или неперечисленные
Без категории

Файловая оболочка (Delphi 30 )

Файловая оболочка (Delphi 30 )

1. Постановка задачи.

Задача заключается в разработке файловой оболочки для операционной

системы Windows’95/98. В программе реализовать механизмы копирования,

переноса, удаления, переименования файлов и директорий, поиск файлов по

маске, просмотр списка файлов по маске, просмотр и редактирование файлов во

внешних редакторах, присвоение и получение атрибутов файла, присвоение

атрибутов группе файлов, запуск приложений со строкой параметров, создание

директории, определение размера директории, получение информации о диске,

настройки интерфейса программы, определение суммарного объёма дискового

пространства занимаемого группой файлов, восстановление интерфейсных

параметров при повторном запуске программы. Так же обеспечить управление

оболочкой при помощи манипулятора типа «мышь» и клавиатуры.

2. Метод реализации.

Для реализации поставленной задачи необходимо создать интерфейс

пользователя состоящий из таких компонент:

А) список директорий.

Б) список файлов

В) список дисков

Г) главное меню программы

Д) панель инструментов.

Для организации интерфейса пользователя будут использованы

стандартные визуальные компоненты Delphi 3.0. Для реализации механизма

копирования/вставки[1] необходимо запомнить список копируемых

файлов/директорий, каждый элемент списка должен содержать информацию о

месте нахождения файла/директории и имени файла/директории. При копировании

группы файлов или одного файла необходимо определить их место положение в

иерархии каталогов, а затем заполнить список, выбирая все файлы отмеченные

пользователем из списка файлов показанного в интерфейсной части программы

(списке файлов). При копировании директории необходимо также определить её

положение и произвести сканирование самой директории с сохранением в списке

имён файлов содержащихся в копируемой директории и структуры каталогов. Для

вставки директории в место копирования, необходимо воссоздать её структуру,

а затем скопировать в неё файлы. Для осуществления этого процесса

вышеупомянутый список разбивается на два. В первом списке (назовем его

временный список директорий) должна находиться структура каталогов, а во

втором (временном списке файлов) расположенные в этих каталогах файлы. Два

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

как при наличии одного списка необходим анализ каждого элемента списка на

предмет наличия поддиректорий и создание этих поддиректорий в месте

копирования, а в копируемой директории в большинстве случаев количество

директорий меньше чем количество файлов и времени на проверку понадобиться

больше, чем при использовании двух списков.

Если же использовать два списка то для воссоздания структуры каталогов

необходимо лишь отсортировать временный список директорий в соответствии с

иерархией каталогов, и создавать директории проходя по списку сверху вниз.

Так как после сортировки, директории расположенные на верхних уровнях

вложенности каталогов будут находиться в верхней части списка, а директории

расположенные на нижних уровнях будут находиться в конце списка. После

воссоздания структуры директории остаётся только переписать файлы.

Алгоритм заполнения временных списков показан на рисунке 1 в виде блок

схемы. Реализация данного алгоритма будет базирована на использовании

функций FindFirst и FindNext, эти функции осуществляют просмотр содержимого

указанной директории и в качестве результата возвращают имя найденного

элемента, его атрибуты, время создания и размер. При анализе атрибутов

найденного элемента можно определить данный элемент директория или файл, и

в соответствии с анализом записать его имя и положение в соответствующий

список. На описанном алгоритме будет базирован также механизм удаления

директории.

Упомянутые выше функции FindFirst и FindNext будут также применены при

реализации механизма поиска файлов по маске.

3. Описание программы.

Программа реализована на языке паскаль с использованием

Delphi 3.0 - среды визуального программирования приложений для Windows’95 .

Детально рассмотрим реализацию некоторых механизмов, таких как:

. Поиск файлов;

. Копирование Директорий;

. Удаление директорий.

Поиск файлов:

Поиск файлов в программе реализован с использованием маски. В маске

возможно использование служебного символа, замены группы неизвестных

символов в имени файла, или его расширении «*», а также возможен поиск с

различием регистров символов, и без такового, с указанием области поиска.

Так же существуют возможности поиска с наложением дополнительных

ограничений, таких как размер искомого файла, а так же времени создания

файла. Детально с реализацией выше перечисленных механизмов вы можете

ознакомиться в приложении 1 на страницах (29-35). Здесь же, мы рассмотрим

реализацию основной части этого механизма.

Для поиска файлов по маске необходимо задание маски поиска в виде

*.сом или autoexec.*, или другие возможные варианты, и области поиска[2]. В

качестве дополнительного параметра может быть задана проверка регистра

символов. Блок схема поиска файлов показана на рисунке 1. При поиске

используется рекурсивная процедура (текст 1.) в которой последовательно

просматривается область поиска, включая

Текст 1.

Procedure TFindForm.FindInCurrentDir(CurDir:string);

Var

SizeF:integer;

i:integer;

EndList:boolean;

F:TSearchRec;

D:string;

begin

{Вывод в статус строке директории в которой производится

поиск}

FindForm.StatusFind.Panels[1].Text:=CurDir;

FindFirst(CurDir+'*.*',faAnyFile,F);

FindNext(F);

repeat

// Проверка расширенного поиска

If FindForm.CBAdvSearch.Checked and

(F.Attr<>faDirectory) then

begin

// Проверка на размер найденного файла

// размер и время создания найденого файла должны находится

в пределах заданных

// пользователем

if not(((F.Size < StrToInt(FindForm.SLess.Text)) and

(F.Size > StrToInt(FindForm.SGreater.Text)))) then

Continue;

if

not(((FileDateTime(CurDir+F.Name)

FindForm.DateIsAfter.Date))) then Continue;

end;

// проверить не является ли найденый файл директорией

if F.Attr=faDirectory then

if (F.Name<>'.') and (F.Name<>'..') then

begin

// если найденный файл – директория ,

рекурсивный вызов поиска в данной директории

FindInCurrentDir(CurDir+F.Name+'\');

end;

if (F.Name<>'..') and (F.Name<>'.') then

// если файл подходит под маску, занести его в список

if CompareFileWithMask(F.Name) then

begin

FindForm.FileWasFind.Items.Add(CurDir+F.Name);

FindForm.StatusFind.Panels[0].Text:=IntToStr(StrToInt(FindForm.StatusFind.Pa

nels[0].Text)+1);

FindForm.FileWasFind.Refresh;

end;

// выполнять поиск пока не закончатся файлы в текущей области заданной

области.

Until((FindNext(F) <> 0));

FindClose(F);

end;

подкаталоги, сравнивается имя найденного файл с маской поиска, и если все

наложенные ограничения выполнены, найденный файл заносится в список

предлагаемый пользователю для просмотра. Для организации поиска в разных

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

В форме поиска файлов возможен переход к выбранному файлу, из списка

найденных, а также запуск либо просмотр/редактирование во внешнем

редакторе.

Копирование / Удаление директорий:

Описанная выше реализация алгоритма поиска файлов применёна в

реализации копирования и удаления директорий[3]. При реализации

рассматриваемых процессов понадобится наличие двух временных списков:

списка директорий и списка файлов (каждая строка обоих списков включает в

себя «полный путь» (FULL PATH)) файла/директории. Для реализации временных

списков использован визуальная компонента ListBoх, данная компонента

представляет собой динамический список строк и набор процедур и функций для

управления этим списком. Заполнение этих списков осуществляется при помощи

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

можете ознакомиться в приложении 1 на страницах (17,23-27). Для

копирования/удаления директорий составляются оба вышеупомянутых списка. При

вставке директории создаётся полное дерево директории, а затем происходит

копирование файлов[4]. При удалении директории так же составляются оба

списка, но так как стандартной процедуры удаляющей не пустую директорию

нет, то в начале удаляются все файлы в удаляемой директории (включая файлы

находящиеся в поддиректориях), а затем пустые директории.

4. Анализ результатов.

Программа имеет все необходимые функции работы с файлами. Все функции

можно активизировать нажатием комбинации клавиш. Производиться статистика

копирования, переноса, удаления файлов/директорий в удобной для восприятия

пользователем форме. Существует простой механизм наложения фильтра на

показываемые файлы. При изменении интерфейса программы, все изменения

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

со строкой параметров с указанием типа запуска. Вывод сообщения о

количестве поддиректорий в директории и о количестве файлов расположенных в

ней. Определение размера директории присвоение атрибутов группе файлов

простым нажатием двух клавиш.

5. Выводы.

В ходе работы была разработана программа манипулирования файлами и

директориями.

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

копирования, переноса, удаления, переименования файлов и директорий,

поиск файлов по маске,

наложение фильтра на список файлов,

просмотр и редактирование файлов во внешних редакторах,

присвоение и получение атрибутов файла,

присвоение атрибутов группе файлов,

запуск приложений со строкой параметров,

создание директории,

определение размера директории,

получение информации о диске,

настройки интерфейса программы,

определение суммарного объёма дискового пространства занимаемого группой

файлов,

восстановление интерфейсных параметров при повторном запуске программы.

Программа имеет удобный интерфейс и может использоваться для работы

пользователями с разным уровнем знаний.

Системные требования: Операционная система Windows’95 и выше, 500 килобайт

дискового пространства.

6. Литература.

П. Туротт, Г. Брент, Р. Багдазиан, С.Тендон «DELPHI 3», DiaSoft, Киев,

1997 г.

-----------------------

[1] Механизм копирования разбит на две части копирование/вставка исходя из

предпологаемого интерфейса программы

2 Возможны 3 области поиска: поиск в текущей директории; поиск на текущем

диске; поиск на всех жестких дисках (также сетевых).

3 Перенос директорий не рассматривается ввиду того, что его алгоритм

является последовательной

комбинацией алгоритма копирования и алгоритма удаления.

4 Если объём копируемых файлов превышает объём пустого места в месте

назначения, копирование произведено не будет





17.06.2012
Большое обновление Большой Научной Библиотеки  рефераты
12.06.2012
Конкурс в самом разгаре не пропустите Новости  рефераты
08.06.2012
Мы проводим опрос, а также небольшой конкурс  рефераты
05.06.2012
Сена дизайна и структуры сайта научной библиотеки  рефераты
04.06.2012
Переезд на новый хостинг  рефераты
30.05.2012
Работа над улучшением структуры сайта научной библиотеки  рефераты
27.05.2012
Работа над новым дизайном сайта библиотеки  рефераты

рефераты
©2011