- •Методические указания
- •230100.62 «Информатика и вычислительная техника»,
- •Лабораторная работа № 1. Информационная структура процессов и потоков в операционной системе
- •Теоретический материал
- •Программная реализация перечисления выполняющихся процессов
- •Программная реализация изучения конкретного процесса
- •Программная реализация изучения ряда потоков внутри процесса
- •Программная реализация изучения модулей внутри процесса
- •Лабораторная работа № 2. Дисковая память и файловая система операционной системы
- •Теоретический материал Организация работы пользователя с устройством хранения
- •Управление файлами в ос
- •Файловая система
- •Ход выполнения работы
- •Ход выполнения работы
- •Выполнение задания:
- •Библиографический список
- •Содержание Лабораторная работа № 1. Информационная структура процессов и потоков в операционной системе……………………….1
- •230100.62 «Информатика и вычислительная техника»,
- •3 94026 Воронеж, Московский просп., 14
Выполнение задания:
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. Пример экранной формы приложения
Вопросы по теме:
Какова организация работы пользователя с устройством хранения информации?
Что включает файловая система, как часть операционной системы?
Какая информация описывает свойства файла? Приведите примеры атрибутов файла.