Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиСП ЛР №6.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
248.83 Кб
Скачать

Методические указания

для выполнения лабораторной работы №6

по курсу «Операционные системы и

системное программирование»

«Сетевое программирование C#»

СОДЕРЖАНИЕ

Цель работы 3

Общие сведения 3

Класс Environment 3

Работаем со специальными папками 3

Получаем список всех дисков 4

Ввод/вывод в C# (System.IO) 4

Классы для работы с папками и файлами 5

Класс Directory 5

Класс File 6

Класс FileSystemInfo 7

Класс DirectoryInfo 8

Класс DirectoryInfo 8

Перечисление FileAttributes 9

Класс FileInfo 10

Пример: получение имен всех подпапок 11

Класс Path 12

Класс FileSystemWatcher 13

Перечисление NotifyFilters 13

Перечисление WatcherChangeTypes 14

Побайтовое чтение/запись. Чтение текстовых данных 14

Асинхронный доступ к файлам 17

Сетевое программирование 21

Dns класс 22

IPHostEntry класс 22

IPEndPoint класс 22

Класс Socket 22

Протокол UDP 25

Шифрование 29

Ход работы 31

Контрольные вопросы 33

Отчетность 34

Дополнительная литература 34

Цель работы

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

Общие сведения Класс Environment

Класс Environment позволяет получить информацию об окружении программы (текущий каталог, версия Windows и т. п.) через свои статические члены. Вот пример использования этого класса:

string s;

//Текущая папка.

s=Environment.CurrentDirectory;

Console.WriteLine("Текущая папка: {0}.", s);

//Системная папка.

s=Environment.SystemDirectory;

Console.WriteLine("Системная папка: {0}.", s);

//Имя компьютера.

s=Environment.MachineName;

Console.WriteLine("Имя компьютера: {0}.", s);

//Oперационная система и ее версия.

OperatingSystem os=Environment.OSVersion;

Console.WriteLine("Операционная система: {0}, версия {1}.",

os.Platform, os.Version);

//Версия платформы .NET.

Version ver=Environment.Version;

Console.WriteLine("Версия платформы .NET: {0}.{1}.",

ver.Major, ver.Minor);

` Указанный фрагмент выведет на экран имя папки, в котром запущено приложение, имя системной папки Windows, NetBIOS имя компьютера, операционую систему и ее версию, платформу .NET и ее версию.

Работаем со специальными папками

Класс Environment, рассмотреннуй на прошлом уроке, позволяет выяснять и местоположение различных специальных папок – SendTo, StartMenu, Program Files и др. Это может оказаться очень удобным для, например, добавлении ярлыка на вашу программу в папку Автозагрузки или на Рабочий Стол.

Специальные папки образуют перечисление Environment.SpecialFolder. Вот его некоторые члены:Специальная папка Описание

Cookies Папка с cookie

DesktopDirectory Рабочий стол

Favorites Избранное

History История (Internet Explorer)

Personal Папка “Мои документы”

ProgramFiles Папка “Program Files”

Recent Папка со списоком последних открываемых документов

SendTo Папка SendTo

StartMenu Главное меню

Startup Папка автозагрузки

System Системная папка Windows

Обратите внимание, что некоторые из этих папок общие для всех пользователей, а некоторые персональны для каждого пользователя.

Вот пример работы со специальными папками:

//Получаем папку SendTo.

Environment.SpecialFolder p=Environment.SpecialFolder.SendTo;

//Получаем путь к папке SendTo.

string s=Environment.GetFolderPath(p);

Console.WriteLine("Папка SendTo: {0}.", s);

//Получаем папку Startup.

p=Environment.SpecialFolder.Startup;

//Получаем путь к папке Startup.

s=Environment.GetFolderPath(p);

Console.WriteLine("Папка Startup: {0}.", s);

Тут мы сначала записываем в переменную типа Environment.SpecialFolder нужную папку, затем извлекаем путь к нужной папке через метод GetFolderPath класса Environment.

Получаем список всех дисков

Класс Environment позволяет получить и имена всех логических дисков компьютера. Делается это через его статический метод GetLogicalDrives(). Вот пример:

string[] drives=Environment.GetLogicalDrives();

foreach(string s in drives)

{

//Выводим имена всех дисков.

Console.WriteLine(s);

}

Метод GetLogicalDrives() возвращает строковый массив с именами всех дисков.