Курсовая работа: Создание поисковой системы файлов в среде MS Visual Studio

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Аналогичное правило действует и при выборе между классами Directory и DirectoryInfo.

2.2 Шаблоны в файлах

Иногда при работе с файлами необходимо или возможно указывать только часть их имени или расширения. Это делается, например, для того, чтобы в параметрах программы не называть полностью имена всех файлов, над которыми производится операция, а выделить их в группу по какому-нибудь признаку (заметим, что некоторые программы работают не с единичными файлами, а с группой). Также бывает необходимо найти файл или файлы, у которых неизвестны полное имя и/или расширения. Для этих целей используют так называемые шаблоны.

Шаблоны представляют собой обычное имя файла (и его расширение) , в котором вместо некоторых букв появляются знаки ?, *, и (в UNIX) []. Знак вопроса указывает на то, что на его месте непременно должен стоять какой-либо допустимый символ имени файла (буква, цифра и т.д.) и причем только дин . Знак *указывает на то, что на его месте может стоять любое количество символов , допустимых в имени файла, а также вообще ничего не стоять . В квадратные скобки заключаются те знаки, один из которыхобязательно должен присутствовать в имени файла на этом месте.

Пример шаблонов.

Шаблон

Соответствие

boo?.tmp

book.tmp, boot.tmp, boo1.tmp идр.

boo[tk].tmp

boot.tmp и book.tmp

b*t.t?p

boot.tep, bat.tmp, bt.tnp и др.

[a-c]3.bat

a3.bat, b3.bat и c3.bat

Необходимо отметить, что шаблон нельзя начинать со знака *, если он не единственный. В этом случае все символы, стоящие после звездочки игнорируются.

Пример:

*t.tmp

bt.tmp, boo.tmp

Это связано с недоработкой программного обеспечения.

Также в некоторых реализациях MS-DOS игнорируются все буквы и цифры после знака *. Учитывайте это при составлении шаблонов!

Шаблоны можно указывать и в имени, и в расширении. Он также может состоять из одних только специальных символов. Например:

*.* - шаблон для всех файлов с любым расширением.

???. - все файлы с именем из трех символов без расширения.

*.com - все файлы с расширением com.

*.? -- файлы с расширением из одной буквы.

name.* -- все файлы с именем name и любым расширением.

C.4.4. Резюме.

В данном разделе мы познакомились с шаблонами файлов. Шаблоны широко используются вместо полных имен файлов в параметрах программ, а также используются при просмотре, поиске и сортировке файлов. Правильно задавать шаблон - это своего рода искусство, с помощью которого можно быстро выбрать файлы с нужными параметрами.

Символы

Значение

?

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

*

На месте этого знака должны находится любое количество допустимых символов имени/расширения или не находится ни одного. В некоторых реализациях все следующие за этим знаком символы игнорируются при поиске.

[]

В скобках указывается символы, из которых один обязательно должен присутствовать в имени/расширении. В случае, если символы в скобках записаны через знак тире '-', то допускается присутствие также всех символов, расположенных между ними.

2.3 Структурная модель

Определив все подзадачи для программы, представим в виде схемы её алгоритмическую декомпозицию:

Структурная модель

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

На первом этапе разработки диаграммы определим подзадачи, следующие друг за другом:

Вывести стартовую форму (на которой отображены рабочее поле для ввода данных и кнопки выбора действий);

Нажатием различных кнопок выполнять нужные операции.

Закрыть основное окно программы.

3. Структурная схемаалгоритма

4. Текст программы

using System;

using System.Windows.Forms;

using System.IO;//для DirectoryInfo

using System.Diagnostics;//для Process

namespace FileSearchApp

{

publicpartialclassSearchForm : Form

{

int fileCount;//количество найденных файлов

public SearchForm()

{

InitializeComponent();

}

void AddInList(ComboBox cb, string item)

//добавить в список новый элемент исключив повторы

{

int i;

for (i = 0; i < cb.Items.Count; i++)

if (cb.Items[i].ToString().ToUpper() == item.ToUpper())

return;

cb.Items.Add(item);

}

privatevoid btnFind_Click(object sender, EventArgs e)

//поискфайлов

{

try

{

fileCount = 0;//обнуляемсчетчикфайлов

btnClearLB_Click(sender, e);//очищаем поле с предыдущими результатами

string path;

if (tbPath.Text != "")

path = tbPath.Text;

else

path = Directory.GetCurrentDirectory();

tbPath.Text = path;

DirectoryInfo dir = newDirectoryInfo(path);

string file = tbMask.Text;

AddInList(tbMask, file);

AddInList(tbPath, path);

FindInDir(dir, file, cbRecurs.Checked);//поисквзаданнойпапке

_lSearchResult.Text = "Результатыпоиска: найденофайлов " + fileCount.ToString();

}

catch (Exception ex)

{

MessageBox.Show("Ошибкавименифайлаилипутипоиска! [" + ex.Message + "]","Ошибка");

}

}

publicvoid FindInDir(DirectoryInfo dir, string pattern, bool recursive)

//поиск файла в папке

// dir - в какой папке искать

// pattern - маска для поиска

// recursive - поиск во вложенных папках

{

foreach (FileInfo file in dir.GetFiles(pattern))//итератор

{

lbResult.Items.Add(file.FullName);//добавилифайл

fileCount++;//увеличили счетчик

}

if (recursive)//если задан просмотр вложенных папок

{

foreach (DirectoryInfo subdir in dir.GetDirectories())//длякаждойпапки

{

Application.DoEvents();

FindInDir(subdir, pattern, recursive);//рекурсивныйвызов

}

}

}

privatevoid btnBrowse_Click(object sender, EventArgs e)

//выбор пути для начала поиска

{

if (SelectFolderDialog.ShowDialog() == DialogResult.OK)

{

tbPath.Text = this.SelectFolderDialog.SelectedPath;

}

}

privatevoid btnClearLB_Click(object sender, EventArgs e)

//очистка окна вывода результатов

{

lbResult.Items.Clear();

}

privatevoid btnClearAll_Click(object sender, EventArgs e)

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

{

tbMask.Text = "";

tbPath.Text = "";

lbResult.Items.Clear();

}

}

}

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

5.1 Назначение программы

Программа предназначена для поиска всех файлов по указанному шаблону в каталогах и подкаталогах заданного пути.

5.2 Описание структуры программы

Глобальная переменнаяfileCount хранит количество найденных файлов.

ФункцияAddInList(cb, item) - добавить в раскрывающийся список новый элемент исключив повторы.

Параметры:

cb - указатель на список ComboBox.

item - добавляемый элемент.

ФункцияbtnFind_Click - поиск файлов.

Функция FindInDir(dir, pattern, recursive) - поискфайлавпапке.

Параметры:

dir - в какой папке искать.

pattern - маска для поиска.

recursive - поиск во вложенных папках.

Функция btnBrowse_Click - выбор пути для начала поиска.

Функция btnClearLB_Click - очистка окна вывода результатов.

ФункцияbtnClearAll_Click - очистка окна вывода результатов и полей ввода.

5.3 Системные требования

Программное обеспечение написано на VisualStudioC# и требует для своего запуска:

Операционную систему семейства Windows одной из версий: Windows XP, Windows 7 или Windows 8.

Минимальные системные требования к программному продукту соответствуют минимальным требованиям к операционной системе:

§ рекомендуется компьютер с процессором, тактовая частота которого составляет не менее 1 ГГц; допустимый минимум - 500 МГц; использоваться могут процессоры семейств Intel Pentium/Celeron, AMD K6/Athlon/Duron, или другие совместимые процессоры.

§ не менее 1 ГБ ОЗУ (допустимый минимум - 512 МБ).

§ 0,1 МБ свободного места на жестком диске (только под исполняемый модуль программы).

§ видеоплата и монитор Super VGA, с разрешением не менее 800600 точек.

§ клавиатура и мышь Microsoft Mouse, или совместимое устройство ввода.

5.4 Инструкция пользователя

Для установки программ на персональный компьютер пользователя, оператору необходимо скопировать загрузочный модуль FileSearch.exeс установочного диска на рабочий стол или в специально созданный каталог. С помощью стандартных процедур графической оболочки Windows вынести пиктограмму на рабочий стол.

Работа программы начинается после запуска пиктограммы FileSearch.exe.

Окно состоит из трех областей (рис. 2):

§ полей ввода маски файла и начального пути поиска;

§ кнопки выбора стартовой папки;

§ флажка задания режима просмотра подкаталогов;

§ области вывода списка найденных файлов;

§ кнопок управления программой.

Главное окно

Последовательность работы с программой:

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

Имя папки можно как ввести вручную, так и выбрать с помощью диалога после нажатия кнопки «Обзор…».

Если галочка установлена, то поиск будет происходить также в подпапках. Если нет - то не будет. (По умолчанию галочка стоит).

После нажатия кнопки «Старт» происходит поиск заданного файла в заданной директории.

Если на этом этапе возникает какая либо ошибка (например, не указано имя корневой папки), то выдается сообщение об этом и дальнейший поиск останавливается.

Если в процессе поиска обнаруживаются соответствующие запросу файлы, то они выводятся списком в элемент управления ListBox.

Есть возможность очищать поле результатов. Для этого необходимо нажать кнопку «Очистить».

Чтобы очистить как поле результатов, так и поля с данными для поиска, необходимо нажать кнопку «Очистить все».

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

6. Контрольный пример

Результатвыполнения программы

Выводы по работе

В результате выполнения контрольной работы мной была разработана программа поиска файлов на языке программирования С# в среде MSVisualStudio.

Программа позволяет выполнять поиск файлов по заданной спецификации в заданных папках, выводить на экран список найденных файлов и их количество. Управление производится при помощи командных кнопок.

При разработке программного продукта использовалась объектно-ориентированная технология и язык С#. Использование среды разработки Microsoft Visual Studio при программной реализации, позволило создать качественное современное программное обеспечение, обладающее высокой скоростью работы, удовлетворяющее всем уровням требований предъявляемых к интерфейсу пользователя, обеспечивающее эффективность и гибкость работы с данными.

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

Данный программный продукт успешно прошел полное тестирование и отладку, что говорит о соответственном качестве программного продукта.

Список использованной литературы

1. Абрамян М.Э. VisualC# на примерах. -Спб.: БХВ - Петербург, 2008. -496 с.

2. Дэвис Стефан Рэнди, Сфер Чак. С# 2008 для "чайников".: Пер. с англ. -М.: ООО "И.Д. Вильямс", 2008. -576 с.

3. Окулов С.М. Программирование в алгоритмах. -М.: Бином, 2004. -341 с.

4. Пауэрс Л. Microsoft Visual Studio 2008. -СПб.: БХВ-Петербург, 2009. -1200 с.

5. Понамарев В.А. Программирование на С++/С# в VisualStudio.NET. -СПб.: БХВ - Петербург, 2009.-352 с.

6. Шилдт Г. C#: учебный курс. -СПб.: Питер; К.: Издательская группа BHV, 2009. -512 с.

7. http://msdn.microsoft.com/ru-ru/library

Источник: https://otherreferats.allbest.ru/download/1111731/