Язык программирования C#9 и платформа .NET5
Часть 363 из 642 Информация о книге
Console.WriteLine("Here are your drives:");foreach (string s in drives){Console.WriteLine("--> {0} ", s);}<b> // Удалить ранее созданные подкаталоги.</b>Console.WriteLine("Press Enter to delete directories");Console.ReadLine();try{Directory.Delete("MyFolder");<b> // Второй параметр указывает, нужно ли удалять внутренние подкаталоги.</b>Directory.Delete("MyFolder2", true);}catch (IOException e){Console.WriteLine(e.Message);}}Работа с типом DriveInfo
Пространство имен
содержит класс по имениSystem.IO. ПодобноDriveInfoстатический методDirectory.GetLogicalDrives()позволяет выяснить имена устройств на машине. Однако в отличие отDriveInfo.GetDrives()методDirectory.GetLogicalDrives()предоставляет множество дополнительных деталей (например, тип устройства, доступное свободное пространство и метка тома). Взгляните на следующие операторы верхнего уровня в новом проекте консольного приложенияDriveInfo.GetDrives():DriveInfоАррusing System;using System.IO;<b>// Получить информацию обо всех устройствах.</b>DriveInfo[] myDrives = DriveInfo.GetDrives();<b>// Вывести сведения об устройствах.</b>foreach(DriveInfo d in myDrives){Console.WriteLine("Name: {0}", d.Name); // имяConsole.WriteLine("Type: {0}", d.DriveType); // тип<b> // Проверить, смонтировано ли устройство.</b>if(d.IsReady){Console.WriteLine("Free space: {0}", d.TotalFreeSpace);// свободное пространствоConsole.WriteLine("Format: {0}", d.DriveFormat); // формат устройстваConsole.WriteLine("Label: {0}", d.VolumeLabel); // метка тома}Console.WriteLine();}Console.ReadLine();Вот возможный вывод:
***** Fun with DriveInfo *****Name: C:\Type: FixedFree space: 284131119104Format: NTFSLabel: OSName: M:\Type: NetworkFree space: 4711871942656Format: NTFSLabel: DigitalMediaК этому моменту вы изучили несколько основных линий поведения классов
,DirectoryиDirectoryInfо. Далее вы ознакомитесь с тем, как создавать, открывать, закрывать и удалять файлы, находящиеся в заданном каталоге.DriveInfoРабота с типом FileInfo
Как было показано в предыдущем примере
, классDirectoryAppпозволяет получать сведения о существующих файлах на жестком диске (такие как время создания, размер и атрибуты) и помогает создавать, копировать, перемещать и удалять файлы. В дополнение к набору функциональности, унаследованной отFileInfo, классFileSystemInfoимеет ряд уникальных членов,которые описаны в табл. 20.4.FileInfoОбратите внимание, что большинство методов класса
возвращают специфический объект ввода-вывода (например,FileInfoиFileStream), который позволяет начать чтение и запись данных в ассоциированный файл во множестве форматов. Вскоре мы исследуем указанные типы, но прежде чем рассмотреть работающий пример, давайте изучим различные способы получения дескриптора файла с использованием классаStreamWriter.FileInfoМетод FileInfo.Create()
Следующий набор примеров находится в проекте консольного приложения по имени
. Один из способов создания дескриптора файла предусматривает применение методаSimpleFileIO:FileInfo.Create()using System;using System.IO;Console.WriteLine("***** Simple IO with the File Type *****\n");// Измените это на папку на своей машине, к которой вы имеете доступ// по чтению/записи или запускайте приложение от имени администратора.var fileName = $@"C{Path.VolumeSeparatorChar}{Path.DirectorySeparatorChar}temp{Path.DirectorySeparatorChar}Test.dat";
