Объект Drive

Объект Drive содержит свойства, которые позволяют получить информацию о дисках системы, например их название и сколько свободного места доступно. "Диском" считается не только винчестер, но и CD-ROM диск, диск RAM и т.д. Диск не обязательно должен быть присоединён к системе, он также может быть логически подключён через сеть.

Объект Drive создается методом GetDrive() объекта FileSystemObject.

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

Синтаксис

var FSO = WScript.CreateObject("Scripting.FileSystemObject");

var objDrive = FSO.getDrive ( drivespec )

var objDrive = FSO.Drives.Item ( drivespec )

// drivespec - может быть буквой диска (c), буквой диска с двоеточием (c:), 
//             буквой диска с двоеточием и символом разделителем пути (c:\), 
//             или любым сетевым путем (\\computer2\share1). 

Свойства обхекта Drive

AvailableSpaceВозвращает количество доступного для пользователя места на диске в байтах.
DriveLetterВозвращает символ физического (логического) диска или сетевого ресурс.
DriveTypeОпределяет тип ресурса..
FileSystemВозвращает тип файловой системы (FAT, NTFS или CDFS).
FreeSpaceВозвращает количество свободного места на диске в байтах.
IsReadyВозвращает true, если устройство готово, иначе - false.
PathВозвращает полный путь к файлу.
RootFolderВозвращает объект Folder, соответствующий корневому каталогу диска.
SerialNumberВозвращает десятичный серийный номер диска.
ShareNameВозвращает сетевое имя диска, если диск сетевой (иначе - пустая строка).
TotalSizeВозвращает общий объём диска в байтах.
VolumeNameВозвращает метка тома диска.

AvailableSpace

Синтаксис

// Свойство. Только чтение.

objDrive.AvailableSpace

Возвращаемое значение

Число - количество доступного для пользователя места на диске в байтах.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var DriveC = FSO.GetDrive("C:");
var Str = "Диск C:" + '\n' + 
  "AvailableSpace: " + DriveC.AvailableSpace + '\n' + 
  "DriveLetter: " + DriveC.DriveLetter + '\n' + 
  "DriveType: " + DriveC.DriveType + '\n' + 
  "FileSystem: " + DriveC.FileSystem + '\n' + 
  "FreeSpace: " + DriveC.FreeSpace + '\n' + 
  "IsReady: " + DriveC.IsReady + '\n' + 
  "Path: " + DriveC.Path + '\n' + 
  "RootFolder (Path): " + DriveC.RootFolder.Path + '\n' + 
  "SerialNumber: " + DriveC.SerialNumber + '\n' + 
  "ShareName: " + DriveC.ShareName + '\n' + 
  "TotalSize: " + DriveC.TotalSize + '\n' + 
  "VolumeName: " + DriveC.VolumeName;
WScript.Echo ( Str );

DriveLetter

Синтаксис

// Свойство. Только чтение.

objDrive.DriveLetter

Возвращаемое значение

Строка - буква, ассоциированная с ресурсом.

Комментарии

Свойство DriveLetter возвращает строку нулевой длины (""), если указанный диск не ассоциирован с буквой диска, например, сетевой ресурс, не ассоциированный с буквой диска.

Пример

function ShowDriveLetter(drvPath)
  { var fso, d, s;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    d = fso.GetDrive(fso.GetDriveName(drvPath));
    s = "Диск " + d.DriveLetter.toUpperCase( ) + ": - ";
    s += d.VolumeName + "<br>";
    s += "Свободного пространства: " + d.AvailableSpace/1024 + " Kbytes";
    return(s);
  }

DriveType

Синтаксис

// Свойство. Только чтение.

objDrive.DriveType

Возвращаемое значение

Число - определяет тип ресурса. Возможные значения:

Пример

function ShowDriveType(drvpath)
 { var fso, d, s, t;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(drvpath);
   switch (d.DriveType)
    { case 0: t = "Неизвестный"; break;
      case 1: t = "Сменный"; break;
      case 2: t = "Жесткий"; break;
      case 3: t = "Сетевой"; break;
      case 4: t = "CD-ROM"; break;
      case 5: t = "Виртуальный RAM Диск"; break;
    }
   s = "Диск " + d.DriveLetter + ": - " + t;
   return(s);
 }

FileSystem

Синтаксис

// Свойство. Только чтение.

objDrive.FileSystem

Возвращаемое значение

cтрока - тип файловой системы (FAT, NTFS или CDFS).

Пример

function ShowFileSystemType(drvPath)
 { var fso,d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(drvPath);
   s = d.FileSystem;
   return(s);
 }

FreeSpace

Синтаксис

// Свойство. Только чтение.

objDrive.FreeSpace

Возвращаемое значение

Число - количество свободного места на диске в байтах.

Пример

function ShowFreeSpace(drvPath)
 { var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(drvPath));
   s = "Диск " + drvPath.toUpperCase( ) + " - ";
   s += d.VolumeName + "<br>";
   s += "Свободного пространства: " + d.FreeSpace/1024 + " Kbytes";
   return(s);
 }

IsReady

Синтаксис

// Свойство. Только чтение.

objDrive.IsReady

Возвращаемое значение

Булево (число) - true, если устройство готово, иначе - false. Актуально для устройства со сменным носителем или CD-ROM.

Пример

function ShowDriveInfo(drvpath)
 { var fso, d, s, t;
   fso = new ActiveXObject("Scripting.FileSystemObject")
   d = fso.GetDrive(drvpath)
   switch (d.DriveType)
    { case 0: t = "Неизвестный"; break;
      case 1: t = "Сменный"; break;
      case 2: t = "Жесткий"; break;
      case 3: t = "Сетевой"; break;
      case 4: t = "CD-ROM"; break;
      case 5: t = "Виртуальный RAM-диск"; break;
    }
   s = "Диск " + d.DriveLetter + ": - " + t;
   if (d.IsReady)
      s += "<br>" + "Диск готов.";
   else
      s += "<br>" + "Диск не готов.";
   return(s);
 }

Path

Синтаксис

// Свойство. Только чтение.

objDrive.Path

Возвращаемое значение

Строка - путь к диску (например, "C:", но не "C:\\").

Пример

function ShowFileAccessInfo(filespec)
 { var fso, d, f, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFile(filespec);
   s = f.Path.toUpperCase() + "<br>";
   s += "Создан: " + f.DateCreated + "<br>";
   s += "Просмотрен: " + f.DateLastAccessed + "<br>";
   s += "Модифицирован: " + f.DateLastModified
   return(s);
 }

RootFolder

Синтаксис

// Свойство. Только чтение.

objDrive.RootFolder

Возвращаемое значение

Объект Folder, соответствующий корневому каталогу диска.

Пример

function GetRootFolder(drv)
 { var fso,d;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   if (fso.DriveExists(drv))
    { d = fso.GetDrive(drv);
      return(d.RootFolder);
    }
   else
      return(false);
 }

SerialNumber

Синтаксис

// Свойство. Только чтение.

objDrive.SerialNumber

Возвращаемое значение

Число - десятичный серийный номер диска.

Пример

function ShowDriveInfo(drvpath)
 { var fso, d, s, t;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
   switch (d.DriveType)
    { case 0: t = "Неизвестный"; break;
      case 1: t = "Сменный"; break;
      case 2: t = "Жесткий"; break;
      case 3: t = "Сетевой"; break;
      case 4: t = "CD-ROM"; break;
      case 5: t = "Виртуальный RAM диск"; break;
    }
   s = "Диск " + d.DriveLetter + ": - " + t;
   s += "<br>" + "SN: " + d.SerialNumber;
   return(s);
 }

ShareName

Синтаксис

// Свойство. Только чтение.

objDrive.ShareName

Возвращаемое значение

Строка - сетевое имя диска, если диск сетевой (иначе - пустая строка).

Пример

function ShowDriveInfo(drvpath)
 { var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
   s = "Диск " + d.DriveLetter + ": - " + d.ShareName;
   return(s);
 }

TotalSize

Синтаксис

// Свойство. Только чтение.

objDrive.TotalSize

Возвращаемое значение

Число - общий объём диска в байтах.

Пример

function SpaceReport(drvPath)
 { var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(drvPath));
   s = "Диск " + drvPath + " - ";
   s += d.VolumeName + "<br>";
   s += "Всего места: "+ d.TotalSize/1024 + " Kb <br>";
   s += "Свободно:  " + d.FreeSpace/1024 + " Kb";
  return(s);
 }

VolumeName

Синтаксис

// Свойство. Чтение и запись.

objDrive.VolumeName

Возвращаемое значение

Строка - метка тома диска.

Пример

function SpaceReport(drvPath)
 { var fso, d, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   d = fso.GetDrive(fso.GetDriveName(drvPath));
   s = "Диск " + drvPath + " - ";
   s += d.VolumeName + "<br>";
   s += "Всего места: "+ d.TotalSize/1024 + " Kb <br>";
   s += "Свободно:  " + d.FreeSpace/1024 + " Kb";
   return(s);
 }