//Записываем информацию о букве диска

s='|'+FillStr(51,'Диск '+DriveLetter)+'|';

RepFile.WriteLine(s);

RepFile.WriteLine('+---------------------------------------------------+');

//Записываем информацию о метке тома

s='|'+LFillStr(25,'Метка тома: '+VolumeName)+'|';

//Записываем информацию об общем объеме диска

s+=LFillStr(25,'Общий объем, Mb: '+Total)+'|';

RepFile.WriteLine(s);

RepFile.WriteLine('+---------------------------------------------------+');

//Записываем информацию об использованном пространстве

s='|'+LFillStr(25,'Используется, Mb: '+Used.toString())+'|';

//Записываем информацию о свободном пространстве

s+=LFillStr(25,'Свободно, Mb: '+Free.toString())+'|';

RepFile.WriteLine(s);

RepFile.WriteLine('+---------------------------------------------------+');

Если же устройство drive не готово (свойство IsReady равно false), то с помощью свойства DriveType проверяется, не является ли ли диск сетевым (в этом случае DriveType=3), после чего в файл выводится соответствующее сообщение:

if (drive.DriveType == 3) { //Проверяем, является ли диск сетевым

 //Записываем информацию о букве диска

 RepFile.WriteLine( 'Диск ' + drive.DriveLetter + ' является сетевым' );

 //Записываем пустые строки

 RepFile.WriteLine();

 RepFile.WriteLine();

} else {

 //Устройство не готово

 RepFile.WriteLine( 'Устройство ' + drive.DriveLetter + ': не готово' );

 //Записываем пустые строки

 RepFile.WriteLine();

 RepFile.WriteLine();

}

Полный текст сценария DrivesReport.js приведен в листинге 5.16.

Листинг 5.16. Отчет об использовании дискового пространства для всех устройств на компьютере

/*******************************************************************/

/* Имя: DrivesReport.js                                            */

/* Язык: JScript                                                   */

/* Описание: Формирование отчета об использовании дискового        */

/*           пространства для всех устройств на компьютере         */

/*******************************************************************/

//Объявляем переменные

var FSO, RepFile, MDate,WshShell, ForWriting = 2;

// Функция для перебора в цикле всех устройств (дисков)

function LoopDrives() {

 var Drives;

 //Создаем коллекцию дисков

 Drives = new Enumerator( FSO.Drives );

 //Цикл по всем дискам

 for(; !Drives.atEnd(); Drives.moveNext()) WriteDriveInfo(Drives.item());

}

// Функция для вывода информации об одном устройстве (диске)

function WriteDriveInfo(drive) {

 var s,Total,Free,Used,DriveLetter,VolumeName;

 if (drive.IsReady) { //Проверяем готовность устройства

  //Вычисляем общий объем диска в мегабайтах

  Total = Math.round(drive.TotalSize/1048576);

  //Вычисляем объем свободного пространства в мегабайтах

  Free = Math.round(drive.FreeSpace/1048576);

  //Вычисляем объем использованного пространства в мегабайтах

  Used = Total - Free;

  //Определяем букву диска

  DriveLetter=drive.DriveLetter+':';

  //Определяем метку тома

  VolumeName=drive.VolumeName;

  RepFile.WriteLine('+---------------------------------------------------+');

  //Записываем информацию о букве диска

  s='|'+FillStr(51,'Диск '+DriveLetter)+'|';

  RepFile.WriteLine(s);

  RepFile.WriteLine('+---------------------------------------------------+');

  //Записываем информацию о метке тома

  s='|'+LFillStr(25,'Метка тома: '+VolumeName)+'|';

  //Записываем информацию об общем объеме диска

  s+=LFillStr(25,'Общий объем, Mb: '+Total)+'|';

  RepFile.WriteLine(s);

  RepFile.WriteLine('+---------------------------------------------------+');

  //Записываем информацию об использованном пространстве

  s='|'+LFillStr(25,'Используется, Mb: '+Used.toString())+'|';

  //Записываем информацию о свободном пространстве

  s+=LFillStr(25,'Свободно, Mb: '+Free.toString())+'|';

  RepFile.WriteLine(s);

  RepFile.WriteLine('+---------------------------------------------------+');

  //Записываем пустые строки

  RepFile.WriteLine();

  RepFile.WriteLine();

 } else if (drive.DriveType == 3) { //Проверяем, является ли диск сетевым

  //Записываем информацию о букве диска

  RepFile.WriteLine( 'Диск ' + drive.DriveLetter + ' является сетевым' );

  //Записываем пустые строки

  RepFile.WriteLine();

  RepFile.WriteLine();

 } else {

  //Устройство не готово

  RepFile.WriteLine( 'Устройство ' + drive.DriveLetter + ': не готово' );

  //Записываем пустые строки

  RepFile.WriteLine();

  RepFile.WriteLine();

 }

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату