Объект Drive. Работа с дисками

Объект Drive позволяет выполнять различные манипуляции с дисками. Создать объект позволяет метод GetDrive(<Имя диска>) объекта FileSystemObject. В параметре <Имя диска> указывается название диска (например, "C", "C:" или "C:\") или путь в сетевом окружении. Если указанный диск не найден, то генерируется ошибка. Пример создания объекта:

Dim fso As New FileSystemObject
Dim Диск As Drive
Set Диск = fso.GetDrive("C")
' Работаем с диском

Проверка существования диска

Проверить существование диска с указанным именем позволяет метод DriveExists(<Имя диска>) объекта FileSystemObject. В параметре <Имя диска> указывается название диска (например, "C", "C:" или "C:\"). Метод возвращает значение True, если диск существует и False — в противном случае. Пример:

Dim fso As New FileSystemObject
If fso.DriveExists("C") = True Then
   Debug.Print "Существует"
Else
   Debug.Print "Нет"
End If

Получение информации о диске

Получить информацию о диске позволяют следующие свойства объекта Drive:

  • DriveLetter — буква диска (например, "C");
  • Path — путь к диску (например, "C:");
  • RootFolder — путь к корневому каталогу (например, "C:\");
  • ShareName — имя сетевого ресурса;
  • VolumeName — имя тома на диске (чтение и запись);
  • AvailableSpace — размер доступного пространства на диске;
  • FreeSpace — размер свободного пространства на диске;
  • TotalSize — общий размер диска;
  • SerialNumber — серийный номер диска;
  • FileSystem — тип файловой системы (например, "NTFS");
  • IsReady — содержит значение True, если диск готов для использования, и False — в противном случае;
  • DriveType — тип диска. Содержит значения 0 (тип неизвестен), 1 (съемный диск), 2 (жесткий диск), 3 (сетевой диск), 4 (CD-ROM) или 5 (RAM-диск).

Пример получения информации о диске показан в листинге 13.3.

Листинг 13.3. Получение информации о диске

Dim fso As New FileSystemObject
Dim Диск As Drive
Set Диск = fso.GetDrive("C")
Debug.Print Диск.DriveLetter    ' C
Debug.Print Диск.Path           ' C:
Debug.Print Диск.RootFolder     ' C:\
Debug.Print Диск.AvailableSpace ' 104660189184
Debug.Print Диск.FreeSpace      ' 104660189184
Debug.Print Диск.TotalSize      ' 160039239680
Debug.Print Диск.IsReady        ' True
Debug.Print Диск.FileSystem     ' NTFS
Debug.Print Диск.DriveType      ' 2

Семейство Drives

Семейство Drives содержит несколько объектов Drive. Доступ к объекту в коллекции выполняется с помощью метода Item(<Индекс>) или с помощью цикла For Each...Next. Получить количество объектов в коллекции позволяет свойство Count.

С помощью свойства Drives объекта FileSystemObject можно получить ссылку на коллекцию всех дисков. В качестве примера выведем названия всех дисков:

Dim fso As New FileSystemObject, Item
Dim Диски As Drives
Set Диски = fso.Drives
For Each Item In Диски
   Debug.Print Item.DriveLetter
Next

Visual Basic for Applications (VBA)
Статьи по Visual Basic for Applications (VBA)

Помощь сайту

Yandex-деньги: 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов