- •Методические указания
- •230100.62 «Информатика и вычислительная техника»,
- •Лабораторная работа № 1. Информационная структура процессов и потоков в операционной системе
- •Теоретический материал
- •Программная реализация перечисления выполняющихся процессов
- •Программная реализация изучения конкретного процесса
- •Программная реализация изучения ряда потоков внутри процесса
- •Программная реализация изучения модулей внутри процесса
- •Лабораторная работа № 2. Дисковая память и файловая система операционной системы
- •Теоретический материал Организация работы пользователя с устройством хранения
- •Управление файлами в ос
- •Файловая система
- •Ход выполнения работы
- •Ход выполнения работы
- •Выполнение задания:
- •Библиографический список
- •Содержание Лабораторная работа № 1. Информационная структура процессов и потоков в операционной системе……………………….1
- •230100.62 «Информатика и вычислительная техника»,
- •3 94026 Воронеж, Московский просп., 14
Ход выполнения работы
1) Создать консольное приложение
2) В редакторе кода добавить пространство имен
using System.IO;
3) В методе Main() добавить стандартный метод для определения всех дисков на данном компьютере:
DriveInfo[] allDrives = DriveInfo.GetDrives();
4) Организовать цикл, который позволяет пройти все значения заданного множества:
foreach (DriveInfo d in allDrives)
{
}
5) В цикл добавить выдачу на экран информации об имени диска и его типе:
Console.WriteLine("Диск {0}", d.Name);
Console.WriteLine(" Тип: {0}", d.DriveType);
6) В цикле добавить проверку возможности чтения информации с диска:
if (d.IsReady == true)
{
}
7) В том случае если условие выполняется, выдать на экран информацию о файловой системе, свободном пространстве для данного пользователя, свободном пространстве на диске и размере диска:
Console.WriteLine(" Файловая система: {0}", d.DriveFormat);
Console.WriteLine(" Свободное пространство для данного пользователя:{0, 5} bytes", d.AvailableFreeSpace);
Console.WriteLine(" Свободное пространство на диске: {0, 5} bytes", d.TotalFreeSpace);
Console.WriteLine(" Размер диска: {0, 5} bytes ", d.TotalSize);
8) Запустить приложение на выполнение, отладить. Пример работы программы представлен на рис. 12.
Рис. 12. Результат работы консольного приложения
Задание 2. Разработать Windows приложение, позволяющее пользователю определять размер диска и его свободное пространство в гигабайтах или мегабайтах.
- просматривать папки выбранного диска;
- просматривать список файлов выбранной папки.
Ход выполнения работы
1) Запустить Visual Studio, создать оконное приложение (рис. 13).
Рис. 13. Создание оконного приложения
2) На форме установить следующие компоненты:
- comboBox1, где будет представлен перечень дисков данного компьютера;
- listBox1, где будет выдаваться информация о размере диска;
- listBox2, где будет представлен перечень папок выбранного диска;
- listBox3, где будет представлен список файлов выбранной папки;
- label1, label2, label3, label4 для пояснительных надписей.
3) В текст программы добавить:
using System.IO;
4) После объявления формы
public Form1()
{
InitializeComponent();
}
добавить объявление:
DriveInfo[] allDrives;
5) Создать событие при загрузке формы Form1_Load для чего выполнить следующие действия:
- в конструкторе форм сделать активным объект Form1;
- в окне События найти Load, создать процедуру, щелкнув двойным щелчком на пустое поле рядом с названием события;
6) В редакторе кода в теле процедуры обработки события ввести следующий код:
allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
comboBox1.Items.Add(d.Name);
}
comboBox1.SelectedIndex = -1;
Данный фрагмент позволяет при загрузке формы в ОП в allDrives считать все диски данного компьютера, затем в цикле ввести перечень дисков в компонент comboBox1, далее устанавливается начальное значение открывающегося списка в нулевое значение.
7) Написать метод info(DriveInfo D), который для выбранного диска будет выдавать информацию об объеме диска и его свободном пространстве.
void info(DriveInfo D)
{
if (D.IsReady) // Если диск доступен:
{
String v;
long a = (1024 * 1024 * 1024); // Размер гигабайта
if (D.TotalSize <= 10 * a) // Если объём диска меньше гигабайта
v = Convert.ToString(D.TotalSize / (1024 * 1024)) + " Мб";
// Выводить память в мегабайтах
// Иначе выводить память в гигабайтах:
else v = Convert.ToString(D.TotalSize / a) + " Гб";
listBox1.Items.Add("Объём диска: " + v);
v = "";
if (D.TotalFreeSpace <= 10 * a) // Если свободное пространство меньше гигабайта
v = Convert.ToString(D.TotalFreeSpace / (1024 * 1024)) + " Мб";
// Выводить память в мегабайтах
// Иначе выводить память в гигабайтах:
else v = Convert.ToString(D.TotalFreeSpace / a) + " Гб";
listBox1.Items.Add("Объём свободного пространства: " + v);
}
else // Если диск недоступен - вывести сообщение:
{
listBox1.Items.Add(" Невозможно отобразить информацию");
}
}
8) Создать событие, которое при выборе диска в открывающемся списке всех дисков выдаст информацию о памяти диска с помощью метода info.
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = comboBox1.SelectedText;
info(allDrives[comboBox1.SelectedIndex]);
}
Пример работы программы приведен на рис. 14.
Рис. 14. Выдача информации о памяти дисков компьютера
Задание 3. Разработать Windows приложение, позволяющее пользователю просматривать папки выбранного диска и список файлов выбранной папки, а также атрибуты выбранного файла.