Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 60143.doc
Скачиваний:
6
Добавлен:
01.05.2022
Размер:
1.21 Mб
Скачать

Выполнение задания:

1) Разберите листинг программы, найдите интерфейсные компоненты языка C#, которые надо установить на форму.

2) Создайте Windows приложение и установите компоненты на форму.

3) Разберите в листинге методы и события, добавьте события к нужным объектам, введите код в программу.

Листинг программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

//*** заполнение дерева каталогов ***

public void DriveTreeInit()

{

string[] drivesArray = Directory.GetLogicalDrives();

treeView1.BeginUpdate(); // отключение экрана

treeView1.Nodes.Clear();

foreach (string s in drivesArray)

{

TreeNode drive = new TreeNode(s, 0, 0);

treeView1.Nodes.Add(drive);

GetDirs(drive);

}

treeView1.EndUpdate(); //включение экрана

}

//============================

//*** Заполнение корневых каталогов ***

public void GetDirs(TreeNode node)

{

DirectoryInfo[] diArray;

node.Nodes.Clear();

string fullPath = node.FullPath;

DirectoryInfo di = new DirectoryInfo(fullPath);

try

{

diArray = di.GetDirectories();

}

catch

{

return;

}

foreach (DirectoryInfo dirinfo in diArray)

{

TreeNode dir = new TreeNode(dirinfo.Name, 0, 0);

node.Nodes.Add(dir);

}

}

//============================

private void Form1_Load(object sender, EventArgs e)

{

DriveTreeInit();

}

//заполнение вложенных каталогов

private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)

{

treeView1.BeginUpdate();

foreach (TreeNode node in e.Node.Nodes)

{

GetDirs(node);

}

treeView1.EndUpdate();

}

//отображение файлов содержащихся в каталоге

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

treeView2.Nodes.Clear();

if (treeView1.SelectedNode != null && treeView1.SelectedNode.FullPath.Length > 4)

{

DirectoryInfo di = new DirectoryInfo(treeView1.SelectedNode.FullPath.Remove(2, 1));

try

{

FileInfo[] fi = di.GetFiles();

foreach (FileInfo f in fi)

{

treeView2.Nodes.Add(f.Name);

}

}

catch

{

return;

}

}

}

private void treeView2_AfterSelect(object sender, TreeViewEventArgs e)

{

if (treeView2.SelectedNode != null)

{

DirectoryInfo di = new DirectoryInfo(treeView1.SelectedNode.FullPath.Remove(2, 1));

FileInfo[] fi = di.GetFiles();

foreach (FileInfo f in fi)

{

if (f.Name == treeView2.SelectedNode.FullPath)

{

listBox1.Items.Clear();

foreach (var item in f.Attributes.ToString().Split(' '))

{

listBox1.Items.Add(item.TrimEnd(','));

}

}

}

}

}

}

}

Пример формы и работы приложения представлен на рис. 15.

Рис. 15. Пример экранной формы приложения

Вопросы по теме:

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

  2. Что включает файловая система, как часть операционной системы?

  3. Какая информация описывает свойства файла? Приведите примеры атрибутов файла.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]