- •Цель работы
- •Общие сведения Класс Environment
- •Работаем со специальными папками
- •Получаем список всех дисков
- •Ввод/вывод в c# (System.Io)
- •Классы для работы с папками и файлами
- •Класс Directory
- •Класс File
- •Класс FileSystemInfo
- •Класс DirectoryInfo
- •Класс DirectoryInfo
- •Перечисление FileAttributes
- •Класс FileInfo
- •Пример: получение имен всех подпапок
- •Класс Path
- •Класс FileSystemWatcher
- •Перечисление NotifyFilters
- •Перечисление WatcherChangeTypes
- •Побайтовое чтение/запись. Чтение текстовых данных
- •Асинхронный доступ к файлам
- •Сетевое программирование
- •Dns класс
- •IpHostEntry класс
- •IpEndPoint класс
- •Класс Socket
- •Протокол udp
- •Шифрование
- •Ход работы
- •Контрольные вопросы
- •Отчетность
- •Дополнительная литература
Методические указания
для выполнения лабораторной работы №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() возвращает строковый массив с именами всех дисков.
