Большинство задач в программировании так или иначе связаны с работой с файлами и каталогами. Нам может потребоваться прочитать текст из файла или наоборот произвести запись, удалить файл или целый каталог, не говоря уже о более комплексных задачах, как например, создание текстового редактора и других подобных задачах.
Фреймворк .NET предоставляет большие возможности по управлению и манипуляции файлами и каталогами, которые по большей части сосредоточены в пространстве имен System.IO. Классы, расположенные в этом пространстве имен (такие как Stream, StreamWriter, FileStream и др.), позволяют управлять файловым вводом-выводом.
Работу с файловой системой начнем с самого верхнего уровня - дисков. Для представления диска в пространстве имен System.IO
имеется класс DriveInfo.
Этот класс имеет статический метод GetDrives(), который возвращает имена всех логических дисков компьютера. Также он предоставляет ряд полезных свойств:
AvailableFreeSpace: указывает на объем доступного свободного места на диске в байтах
DriveFormat: получает имя файловой системы
DriveType: представляет тип диска
IsReady: готов ли диск (например, DVD-диск может быть не вставлен в дисковод)
Name: получает имя диска
RootDirectory: возвращает корневой каталог диска
TotalFreeSpace: получает общий объем свободного места на диске в байтах
TotalSize: общий размер диска в байтах
VolumeLabel: получает или устанавливает метку тома
Получим имена и свойства всех дисков на компьютере:
DriveInfo[] drives = DriveInfo.GetDrives(); foreach (DriveInfo drive in drives) { Console.WriteLine($"Название: {drive.Name}"); Console.WriteLine($"Тип: {drive.DriveType}"); if (drive.IsReady) { Console.WriteLine($"Объем диска: {drive.TotalSize}"); Console.WriteLine($"Свободное пространство: {drive.TotalFreeSpace}"); Console.WriteLine($"Метка диска: {drive.VolumeLabel}"); } Console.WriteLine(); }
Консольный вывод в моем случае:
Название: C:\ Тип: Fixed Объем диска: 624823205888 Свободное пространство: 58199781376 Метка диска: Название: D:\ Тип: Fixed Объем диска: 105372446720 Свободное пространство: 3887951872 Метка диска: Windows7 Название: E:\ Тип: Fixed Объем диска: 17809010688 Свободное пространство: 463650816 Метка диска: RECOVERY Название: G:\ Тип: Fixed Объем диска: 954200064 Свободное пространство: 275193856 Метка диска: