Программирование >>  Автоматически обновляемые приложения 

1 ... 103 104 105 [ 106 ] 107 108 109 ... 170


Разница между этими одноименными методами в том, что они вызывают разные типы исключений, связанные с правами доступа и разрешениями.

Как узнать тип диска и его свойства?

Несмотря на растущие объемы жестких дисков, наступает момент, когда пользователь начинает поглядывать на размер свободного места на своих дисках. Фотографии, фильмы, музыка, навороченные программы быстро заполняют диски. Чтобы узнать количество свободного места на диске, можно воспользоваться свойством Drivelnfo.AvailableFreeSpace. Обратите

внимание, что класс Driveinfo является новым классом в .NET Framework 2.0. Поэтому вам, возможно, придется пересмотреть старые проекты, в которых вы получали информацию о дисках при помощи неуправляемого кода. Для создания нового объекта Driveinfo нужно указать букву диска или более привычную запись с двоеточием и обратной косой чертой, например, С или С: \ для диска С:. В листинге 10.2 приведен пример, показывающий, как извлечь информацию о нужном диске.

i Ч.,-,->- ;;-,>-,-)щ,............w -rv!............-мг...............,.,.., .... vu.......................

; Лиотинг 10.2. Получение типа диска и его свойств

private void buttonl Click(object sender, EventArgs e) {

Выводим информацию о диске

System.10.Driveinfo drv = new System.10.Driveinfo(@ d:\ ) ; listBoxl.Items.Clear();

listBoxl.Items.Add( Диск: + drv.Name);

if (drv.IsReady) {

listBoxl.Items.Add( Тип диска: + drv.DriveType.ToString() ; listBoxl.Items.Add( Файловая система: +

drv.DriveFormat.ToStringО); listBoxl.Items.Add( Свободное место на диске: +

drv.AvailableFreeSpace.ToStringО ) ;

string[] astrLogicalDrives = System.Environment.GetLogicalDrives() ; foreach (string disk in astrLogicalDrives) listBoxl.Items.Add(disk);



Папки

Основные операции, проводимые с папками, - это создание, переименование, перемещение и удаление. У класса System.ю.Directory имеются соответствующие методы CreateDirectory. Move И Delete, КОТОрые ПОЗВОЛЯЮТ легко выполнить эти задачи. Рассмотрим другие методы для работы с папками.

Как получить список папок?

Получить список папок можно также несколькими способами. Например, можно воспользоваться методом GetDi rectories класса System. 10. Directory. Как ЭТО сделать, показано в листинге 10.3.

Листинг 10.3. Список папок

private void buttonl Click(object sender, EventArgs e) {

Получим список папок на диске D: listBoxl.Item.Clear();

string[] astrFolders = System.10.Directory.GetDirectories(@ d:\ ); foreach(string folder in astrFolders) listBoxl.Items.Add(folder);

Надо отметить, что у класса Drivelnfo есть еще свойство TotalFreeSpace,

изучить которое я предлагаю самостоятельно. Обратите внимание, что свойство AvaiiabieFreeSpace заменило функцию Windows API Get-FreeDiskSpaceEx. Хороший пример использования ЭТОЙ функции Windows API можно найти на сайте CodeProject (http: www.codeproject.coin/ useritems/tips/Freespace src.zip). Но в новых проектах, построенных на платформе .NET Framework 2.0, использовать этот пример нет никакой необходимости.

Примечание

Примеры, иллюстрирующие работу с дисками, находятся в папке LogicalD-isk на прилагаемом компакте.



\ Листинг 10А Список папок по маске

private void button2 Click(object sender, EventArgs e) {

Получим список папок, где встречается буквосочетание pro listBoxl.Items.Clear();

System.10.Directoryinfo di = new System.10.Directoryinfo(@ d:\ ) ; System.10.Directoryinfo[] folders = di.GetDirectories( *pro* ); foreach (System.10.Directoryinfo maskdirs in folders) listBoxl.Items.Add(maskdirs);

Как проверить существование папки?

Для этого существует метод System. Ю. Directory.Exists, КОТОрыЙ ВОЗВра-

щает значение true, если папка существует (листинг 10.5). Листинг 10.5. Проверка существования папки

if (System.10.Directory.Exists(@ C:\windows ) )

labell.Text = Папка + @ C:\Windows + существует ;

else

labell.Text = Папка не существует ;

Как переименовать папку?

Если вам нужно переименовать папку, то воспользуйтесь методом Move класса Directory (ЛИСТИНГ 10.6). С ТОЧКИ зрения системы, переименование папки является перемещением папки в ее же родительскую папку, но под другим именем.

Также метод GetDirectories имеется в классе Directoryinfo. Рассмотрим и этот вариант, и при этом выведем список папок по маске (листинг 10.4). Например, мы хотим получить список только тех папок, в именах которых встречается буквосочетание pro .



1 ... 103 104 105 [ 106 ] 107 108 109 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика