Объект FileSystemObject методы CreateFolder и MoveFolder — Как создать новую папку и переместить ее

Объект FileSystemObject методы CreateFolder и MoveFolder — Как создать новую папку и переместить ее Объектная модель Windows Script Host

Всем привет, с вами снова автор блога scriptcoding.ru. В этой публикации мы рассмотрим, как создать новую папку программным путём и вручную, а также, какие программные средства позволяют переместить заданный каталог.

И так, как создать новую папку? Если мы хотим создать новую папку в другом каталоге, на диске или рабочем столе, то можно просто нажать по пустой области правой кнопкой мыши и из контекстного меню выбрать пункт «Создать/Папку«. В итоге, в указанном месте появится новый каталог с именем Новая папка. Если мы работает с редактором Total Commander, то тут, что бы создать новую папку достаточно нажать клавишу F7, ввести название и вёе, работа сделана.

Как создать новую папку

Теперь давайте перейдем к программированию, точнее к объекту FileSystemObject и двум его методам:

CreateFolder(foldername) – Метод показывает, как создать новую папку, в качестве параметра мы указываем имя или полный путь к новому каталогу. Если просто указать имя каталога, то он создастся в текущей папке (откуда был запущен сценарий). Важно, если произойдет попытка создать новую папку с именем, с каким уже есть директория, то произойдёт ошибка.

MoveFolder(source,  destination) – Собственно, метод отвечает за перемещение одного или группы каталогов. Видим, что ему передаются два параметра:

  • source – путь к папке, которую нужно переместить, можно использовать подстановочные знаки «?» – любой один символ или «*» – любое количество символов. В случае использования подстановочных знаков, мы можем переместить сразу несколько каталогов.
  • destination – путь к каталогу, в который должно производиться перемещение.

Хорошо, с теорией разобрались, теперь можно приступить к программированию. Напишем два сценария, один на языке vbscript, а другой на языке jscript. Их задача – показать, как создать новую папку, потом создать еще девять директорий и используя подстановочные знаки переместить их в ранее созданную директорию.

'**********************************************
' Объект FileSystemObject методы CreateFolder и MoveFolder
' Как создать новую папку и переместить ее
' CreateFolder.vbs
'**********************************************
 
Option Explicit
 
dim fso, new_folder, new_sub_folder, i
dim WshShell, cur_dir
 
' формируем ссылку на объект
set WshShell = CreateObject("WScript.Shell")
 
' текущий каталог
cur_dir = WshShell.CurrentDirectory
 
' создаем ссылку на объект Scripting.FileSystemObject
set fso=CreateObject ("Scripting.FileSystemObject")
 
' создаем в текущей папке новый каталог
set new_folder=fso.CreateFolder("Новый каталог_vbs")
 
' циклично сздаем 9 папок
for i=1 to 9 
    set new_sub_folder=fso.CreateFolder(i &"_папка")
next
 
WScript.Echo "Проверьте содержимое текущего каталога"
 
' перемещаем 9 папок в другой каталог
fso.MoveFolder cur_dir & "\?_папка", new_folder
 
WScript.Echo "Процесс перемещения завершен"

Давайте рассмотрим логику программного кода:

Сначала мы подключаем объект WScript.Shell, который нам нужен для получения пути к текущей директории. Путь будет храниться в переменной cur_dir, для получения пути мы используем свойство CurrentDirectory.

как создать программно новую папку

Далее происходит подключение объекта FileSystemObject, он позволит нам использовать метод CreateFolder, что бы показать, как можно создать новую папку с именем «Новый каталог_vbs» в текущей директории.

Скачать архив с примерами

Далее мы используем цикл for (более детально я описал логику его работы в статье Урок_6_Циклы vbscript). Цикл содержит 9 итераций, то есть, будет создано 9 каталогов в текущей папке.

Ну и наконец, мы используем подстановочные знаки в методе MoveFolder для перемещения 9 папок в одну заданную.

Хорошо, а вот аналогичный пример на языке jscript:

//**********************************************
// Объект FileSystemObject методы CreateFolder и MoveFolder
// Как создать новую папку и переместить ее
// CreateFolder.js
//**********************************************
 
var fso, new_folder, new_sub_folder, i;
var WshShell, cur_dir;
 
// формируем ссылку на объект
WshShell = WScript.CreateObject("WScript.Shell");
 
// текущий каталог
cur_dir = WshShell.CurrentDirectory;
 
// создаем ссылку на объект Scripting.FileSystemObject
fso=WScript.CreateObject ("Scripting.FileSystemObject");
 
// создаем в текущей папке новый каталог
new_folder=fso.CreateFolder("Новый каталог_js");
 
// циклично сздаем 9 папок
for (i=10; i<=19; i++){ 
    new_sub_folder=fso.CreateFolder(i + "_папка");
}
 
WScript.Echo ("Проверьте содержимое текущего каталога");
 
// перемещаем 9 папок в другой каталог
fso.MoveFolder (cur_dir + "\\??_папка", new_folder);
 
WScript.Echo ("Процесс перемещения завершен");

Тут в принципе всё тоже, только стоит обратить внимание, что вместо одной косой черточки мы прописали две.

создание новой папки

И так, в этой статье мы рассмотрели методы CreateFolder и MoveFolder объекта FileSystemObject, которые показывают, как создать новую папку и как её переместить.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий