Шаг 61.
Основы JavaScript.
Работа с папками. Копирование, перемещение и удаление папки

    На этом шаге мы рассмотрим другие операции над папками.

    Для копирования, перемещения и удаления папки используются следующие методы объекта файловой системы.

  1. CopyFolder(folderpath1, folderpath2 [, переписать]); - копирует папку, указанную в строке folderpath1, в папку, указанную в строке folderpath2. Если третий необязательный параметр имеет значение true, то уже существующая папка folderpath2 с тем же именем переписывается.
  2. MoveFolder(folderpath1, folderpath2); - перемещает папку, указанную в строке folderpath1, в папку, указанную в строке folderpath2.
  3. DeleteFolder(folderpath [,force]); - удаляет папку, указанную в строке folderpath. Если второй необязательный параметр имеет значение true, то удаляется и папка, предназначенная только для чтения.


    Примеры.
  var folderpath1 = "С:\\Мои документы\\Теst1";
  var folderpath2 = "C:\\Test2";
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  // Создаем папку C:\Test2\Мои документы\Теst1
  fso.CopyFolder(folderpath1, folderpath2);
  // Удаляем папку C:\Test2
  fso. DeleteFolder(folderpath2);
  // Создаем папку C:\Program Files\Мои документы\Теst1
  fso. MoveFolder(folderpath1,"C:\\Program Files");

    Так же, как и в случае создания папки, при практическом копировании, перемещении или удалении папки необходимо сначала убедиться в том, что это действительно можно сделать. Следующая функция выполняет ряд проверок и в случае положительного результата удаляет папку:

// Удаление папки. Возвращает 0, если папка удалена 
// или не существует, и -1 - в противном случае.
function deleteFolder(folderpath) 
{
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  // Если папка не существует, то выход
  if (!fso.FolderExists(folderpath)) return 0;
  // Имя (буква) диска
  var disk = fso.GetDriveName(folderpath);
  // Если не подходит тип диска, то выход
  if (fso.GetDrive(disk).DriveType == 0 || 
    fso.GetDrive(disk).DriveType == 4) return -1;
  // Удаляем папку.
  fso.DeleteFolder(folderpath);
  // Возвращаем результат проверки существования папки.
  return fso.FolderExists(folderpath);
}

    Результат работы функции приведен на рисунке 1.


Рис.1. Результат работы функции deleteFolder()

    Приведем полный текст HTML-документа.

<HTML>
<HEAD>
<TITLE>Удаление папки</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
// Удаление папки. Возвращает 0, если папка удалена 
// или не существует, и -1 - в противном случае.
function deleteFolder(folderpath) 
{
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  // Если папка не существует, то выход
  if (!fso.FolderExists(folderpath)) return 0;
  // Имя (буква) диска
  var disk = fso.GetDriveName(folderpath);
  // Если не подходит тип диска, то выход
  if (fso.GetDrive(disk).DriveType == 0 || 
    fso.GetDrive(disk).DriveType == 4) return -1;
  // Удаляем папку.
  fso.DeleteFolder(folderpath);
  // Возвращаем результат проверки существования папки.
  return fso.FolderExists(folderpath);
}

function f1(x)
{
  if (deleteFolder(x)== -1)
      alert ("Папки с таким именем не существует");
  else alert ("Папка удалена");
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<H2>Удаление папки</H2>
<FORM NAME="frm1">
<INPUT TYPE="TEXT" SIZE="30" VALUE="C:\\Мои документы\\Test" NAME="pole"><BR>
<INPUT TYPE="BUTTON" ONCLICK="f1(frm1.pole.value)" VALUE="Удалить папку">
</FORM>
</BODY>
</HTML>
Текст этого документа можно взять здесь.
Напишите аналогичные функции для копирования и перемещения папок.

    Со следующего шага мы начнем знакомиться с организацией работы с файлами.




Предыдущий шаг Содержание Следующий шаг