Total Commander

Изучение возможности среды программирования Microsoft Visual Studio C#, а именно компонент Treeview, а также набора стандартных операций, например, циклы, массивы. Написание программы с функционалом, приближенным к функционалу программы Total Commander.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 24.07.2012
Размер файла 108,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Введение

В данной курсовой работе рассматривается изучение возможности среды программирования Microsoft Visual Studio C#, а именно компонент Treeview, а также некоторого набора стандартных операций, например, циклы, массивы, логические операции и т.д. (реализовано в практической части).

C# (произносится си шарп) -- объектно-ориентированный язык программирования. Разработан в 1998--2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников -- языков C++, Java, Delphi, Модула и Smalltalk -- С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# не поддерживает множественное наследование классов (в отличие от C++).

Цели курсовой работы:

1. Написание программы, которая реализует некоторое подобие функционала программы Total Commander.

2. Изучение языка C#.

Задачи курсовой работы:

Рассмотреть компонент Treeview на практике.

Реализовать функционал программы (отображение, копирование, перемещение, переименование, удаление файлов и папок, запуск файлов, возможность выбора любого диска на данной машине).

1. Treeview C# - теория

Мы рассмотрим использование Treeview в C#. С ним связаны 3 основные класса: TreeView, TreeNode и TreeNodeCollection.

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

Объект класса TreeNode - это одна запись дерева. Данный объект связывают со строкой, иногда - с определенным изображением. Он имеет следующие конструкторы:

public TreeNode();

public TreeNode(string text);

public TreeNode(string text, TreeNode[] children);

public TreeNode(string text, int imageIndex, int selectedImageIndex);

public TreeNode(string text, int imageIndex, int selectedImageIndex, TreeNode[] children);

В качестве параметров конструктор принимает: text - строку, связанную с узлом (описание узла); imageIndex - индекс изображения по умолчанию для узла; selectedImageIndex - индекс изображения для выделенного узла; children - массив дочерних объектов TreeNode (подузлов).

В классе TreeNode есть свойство Nodes, которое по сути является набором других объектов TreeNode.Свойство Nodes возвращает коллекцию узлов дерева, связанных с элементом управления TreeView. Это и есть те самые узлы дерева, которые будут отображаться, и операции с которыми следует выполнять.

public TreeNodeCollection Nodes {get;}

Чтобы добавить подузел к существующему узлу, необходимо использовать метод Add класса TreeNodeCollection. Существует 2 варианта данной функции. Первый принимает в качестве параметра описание узла, второй - объект класса TreeNode, который нужно добавить в коллекцию.

public virtual TreeNode Add(string text);

public virtual int Add(TreeNode node);

Для удаления подузла используется метод Remove. В данной функции только один параметр - объект класса TreeNode, который необходимо удалить.

public void Remove(TreeNode node);

Класс TreeView - это набор объектов класса TreeNode верхнего уровня. У класса TreeView также есть свойство Nodes.

public TreeNodeCollection Nodes {get;}

При использовании элемента управления TreeView часто используются изображения слева от текста каждого узла. Данные изображения хранятся в объекте ImageList, относящемся ко всему TreeView. Вот некоторые из свойств TreeView, связанные с ImageList:

public ImageList ImageList {get; set;}

public int ImageIndex {get; set;} //определяет рисунок по умолчанию

public int SelectedImageIndex {get; set;}//определяет рисунок для выбранного узла.

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

public int ImageIndex {get; set;} //определяет рисунок по умолчанию

public int SelectedImageIndex {get; set;}//определяет рисунок для выбранного узла.

Однака у TreeNode нет собственного свойства ImageList. Индексы относятся к свойству ImageList элемента управления, которому принадлежит объект TreeNode. Кроме того есть возможность указать индексы изображений при создании объекта TreeNode.

События дерева.

Приведенные ниже события происходят, когда раскрывается, сворачивается или активизируется узел. Если событие в своем названии содержит слово Before, то это событие срабатывает еще до того, как выполнится операция.

public event TreeViewCancelEventHandler BeforeCollapse;

public event TreeViewCancelEventHandler BeforeExpand;

public event TreeViewCancelEventHandler BeforeSelect;

public event TreeViewEventHandler AfterCollapse;

public event TreeViewEventHandler AfterExpand;

public event TreeViewEventHandler AfterSelect;

Пример:

private void Form1_Shown(object sender, EventArgs e)

{

treeView1.Nodes.Add(“1”);

treeView1.Nodes.Add(“2”);

treeView1.Nodes.Add(“3”);

MessageBox.Show(treeView1.Nodes.Count.ToString());

}

2. Разработка программы

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

Задание: написать программу с функционалом, примерно приближенным к функционалу программы Total Commander.

Программа обладает следующим функционалом:

1. При перетаскивании левой кнопкой мыши файл или папка будут перемещаться, а при перетаскивании правой кнопкой мыши файл или папка будут копироваться(Drag&Drop между 2 Treeview).

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

3. При двойном щелчке мыши по узлу, который отображает файл, выполнить запуск файла с помощью программы, которая используется для запуска в Windows по умолчанию.

2.2 Описание механизма программы

total commander treeview

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

public void filltree(string path,TreeNode tv)

{

try

{

try

{

string[]dirs=System.IO.Directory.GetDirectories

(path, "*", System.IO.SearchOption.TopDirectoryOnly);

string[]files=System.IO.Directory.GetFiles

(path, "*.*", System.IO.SearchOption.TopDirectoryOnly);

Array.Sort(dirs);

Array.Sort(files);

foreach (string dir in dirs)

{

tv.Nodes.Add(dir);

if (tv.Nodes.Count != 0)

{

int i = 0;

while(tv.Nodes[i].Text != dir) i++;

tv.Nodes[i].Nodes.Add("");

}

else tv.Nodes.Add("");

}

foreach (string file in files)

tv.Nodes.Add(file);

}

catch (System.UnauthorizedAccessException)

{

MessageBox.Show("Доступ к данной папке(файлу) запрещён");

}

}

catch (System.IO.IOException)

{

MessageBox.Show("Устройство не готово");

}

}

Далее в компоненты ComboBox запишем все возможные диски данной машины. Выбранный элемент поставим первый диск(хотя бы 1 диск есть всегда, иначе откуда запущен Windows?). Затем при изменении combobox будем прорисовывать в treeview соответствующее содержимое.

Реализуем механизм Drag&Drop, сам опеределяющий какая кнопка зажата (без события MouseDown, в Treeview имеется событие ItemDrag). Текст DragDrop:

private void treeView1_DragDrop(object sender, DragEventArgs e)

{

TreeNode NewNode;

if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))

{

Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));

TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);

NewNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");

if (DestinationNode.TreeView != NewNode.TreeView)

{

try

{

TreeNode t = (TreeNode)NewNode.Clone();

FileInfo fi = new FileInfo(NewNode.Text);

t.Text = DestinationNode.Text + '\\' + fi.Name;

if (File.Exists(t.Text))

{

MessageBox.Show("Файл уже существует");

return;

}

if (Directory.Exists(t.Text))

{

MessageBox.Show("Папка уже существует");

return;

}

DestinationNode.Nodes.Add(t);

if (y)

{

if (File.Exists(NewNode.Text))

{

File.Move(NewNode.Text, t.Text);

treeView1.Refresh();

treeView2.Refresh();

}

Else

if (Directory.Exists(NewNode.Text)) Directory.Move(NewNode.Text, t.Text);

NewNode.Remove();

treeView1.Refresh();

treeView2.Refresh();

return;

}

else

{

if (File.Exists(NewNode.Text))

{

File.Copy(NewNode.Text, t.Text);

treeView1.Refresh();

treeView2.Refresh();

}

else

if (Directory.Exists(NewNode.Text))

{

Directory.Move(NewNode.Text, t.Text);

Directory.CreateDirectory(NewNode.Text);

string[] files = Directory.GetFiles(NewNode.Text);

foreach (string file in files)

{

File.Copy(file, NewNode.Text);

}

treeView1.Refresh();

treeView2.Refresh();

}

return;

}

}

catch

{

MessageBox.Show

("Не удалось выполнить перемещение или копирование");

return;

}

}

}

}

Реализуем контекстное меню, которое будем отображаться на экране щелчку на правую кнопку мыши в области узла, который иллюстрирует файл (пункты удалить, переименовать, отменить). Для каждого пишем соответствующий обработчик. Приведу пример обработчика для пункта «Переименовать». Пункт меню «Переименовать» содержит вызов другой формы, которая показывается модально (ShowDialog), и которая реализует ввод нового имени. Вот текст обработчика:

private void переименоватьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (t.Parent == null)

{

MessageBox.Show("Переименование недоступно");

return;

}

Form f2 = new Form2();

f2.ShowDialog();

if(newname=="") return;

if (Directory.Exists(rightclick))

{

DirectoryInfo di = new DirectoryInfo(rightclick);

newname = t.Parent.Text + '\\' + newname+di.Extension;

try

{

Directory.Move(t.Text, newname);

}

catch

{

MessageBox.Show("Такое имя уже существует");

}

}

else

if(File.Exists(rightclick))

{

FileInfo fi = new FileInfo(rightclick);

newname = t.Parent.Text + '\\' + newname + fi.Extension;

try

{

File.Move(t.Text, newname);

}

catch

{

MessageBox.Show("Переименование недоступно");

}

}

}

На другой форме расположены следующие компоненты: textbox,label, 2 button'а (готово и отмена). При нажатии на кнопку «Готово» новое имя зависывается в public string newname. Также, запишем обработчик DoubleClick компонента Treeview. Вот текст обработчика:

private void treeView1_DoubleClick(object sender, EventArgs e)

{

if (File.Exists((sender as TreeView).SelectedNode.Text))

{

string commandText = (sender as TreeView).SelectedNode.Text;

System.Diagnostics.Process proc = new System.Diagnostics.Process();

proc.StartInfo.FileName = commandText;

proc.StartInfo.UseShellExecute = true;

proc.Start();

}

}

2.3 Блок схемы

Рис.1. Блок схема отображения папки и её содержимого

2.4 Структуры данных

Для визуализации были использованы компоненты

· Treeview - дерево файлов

· Combobox - отображение и выбор диска

· Label - подпись окошка ввода имени

· Button - выбор соответствующего результата формы переименования

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

Для корректной работы программы необходима операционная система семейства Windows. Требуется не менее 4 Мб дискового пространства и не менее 4 Мб ОЗУ для корректной работы.

2.6 Руководство пользователя

Программа является очень простой для использования. Чтобы работать с программой нужно выполнить следующие простые шаги:

1. Запустите файл «Total Commander.exe»

2. Выберите нужный вам диск(логическое устройство).

3. Для перемещения файла используйте перетаскивание левой кнопкой мыши, для копирования - правой кнопкой.

4. Для запуска меню с переименованием и удалением наведите мышь на узел, который отображает файл, нажмите правую кнопку мыши, выберите соответствующее действие.

5. Для запуска файла выполните двойной щелчок.

6.

Рис.4 Пример работы с программой.

Заключение

Язык C# очень актуален в настоящее время, предоставляет намного больше возможностей, нежели Delphi, изученный мною раннее. Писать в C# намного удобнее и интереснее и проще. Знание си подобного синтаксиса значительно упрощает изучение других языков, таких как Java, c++, c, pithon, а также изучение скриптов php и прочего.

В курсовой работе описана и реализована программа, написанная с помощью C#, похожая на Total Commander.

В результате выполнения этой работы были получены практические навыки использования C#.

Список литературы:

1. Гамма Э. и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования. Питер, 2007

2. Skeet J. C# In Depth: What you need to master C# 2 and 3. Manning Publications, 2008

3. Элемент управления Дерево:http://www.programmer-lib.ru/csharp_page.php?id=42

Размещено на Allbest.ru


Подобные документы

  • Основные функциональные и технологические возможности файлового менеджера Total Commander. Практические навыки применения антивирусных программ на примере программы NOD32. Особенности использования основных и дополнительных возможностей Total Commander.

    лабораторная работа [1,9 M], добавлен 08.03.2010

  • Использование программы "Total Commander": пользовательский интерфейс, клавиатурные сочетания, операции с файлами, контекстные меню, внутренний просмотр файлов. Назначение и применение функциональных клавиш. Особенности работы с каталогами и файлами.

    презентация [462,3 K], добавлен 25.09.2014

  • Проводник — служебная программа, относящаяся к категории диспетчеров файлов. Навигация по файловой структуре. Запуск программ и открытие документов. Копирование и перемещение файлов. Создание ярлыков объектов. Внешний вид программы Total Commander.

    реферат [220,8 K], добавлен 23.04.2009

  • Техніка безпеки при роботі з ПК. Користування програмами Norton Commander, Провідник (Ехрlоrеr) і Total Commander для огляду файлової системи, запуску програм, виконання дій з файлами, папками та їхніми групами. Методи захисту від комп’ютерних вірусів.

    методичка [2,7 M], добавлен 27.10.2013

  • Робота з файловою системою і файлами в інтерфейсі файлових менеджерів. Початок роботи з програмою Total Commander. Перегляд і редагування файлів. Робота з групами файлів і папок. Наявністю в Total Commander спеціально встановлених програм – плагінів.

    доклад [13,0 K], добавлен 12.10.2014

  • Этапы развития файловых менеджеров. Возможности и сравнительный анализ программ Norton Commander, Total Commander и Far. Экономическая целесообразность использования файловых менеджеров. Охрана труда на рабочем месте оператора компьютерного набора.

    дипломная работа [451,5 K], добавлен 16.07.2010

  • Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.

    курсовая работа [585,5 K], добавлен 24.03.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.