Объект FileSystemObject метод CopyFile

Объект FileSystemObject метод CopyFile Объектная модель Windows Script Host

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

По сути, сначала мы рассмотрим, как копировать файлы на диск в Windows ручным методом с помощью комбинаций клавиш и мышки, потом рассмотрим метод объекта FileSystemObject – CopyFile, который позволяет программным путём копировать файлы на диск или в указанную директорию, а потом начнём программировать.

И так, как копировать вручную файлы на диск? Да всё предельно просто, в зависимости от того, сколько нам нужно копировать файлов, мы можем выделить мышью один или несколько документов, а потом перетянуть их в другую папку или диск, предварительно удерживая клавишу «Ctrl«, отпускаем левую кнопку мыши и всё, файлы скопированы. Второй способ – использование комбинации клавиш, снова выбираем нужные документы, нажимаем комбинацию «Ctrl + C«, потом открываем нужную папку или диск и нажимаем комбинацию «Ctrl + V«. Стоит помнить тот момент, что если мы попытаемся копировать файлы и вставить в одно и то же место (скопировали на диске "С" и туда же хотим снова вставить), то ошибки не произойдёт, система автоматически переименует вставляемые файлы, чтобы не возник конфликт имён.

Как копировать файлы на диск

как копировать файлы на диск
:)

CopyFile(source, destination [,overwrite]) – как видим методу передаются три параметра, при этом, последний не является обязательным.

  • source – данный параметр принимает строковое значение и указывает полный путь к файлу, который нужно скопировать, можно использовать подстановочные знаки: «?» – любой один символ и «*» – любое количество символов.
  • destination – опять таки, полный путь, куда будет скопирован файл, при чём, можно указать новое имя и расширение.
  • overwrite – если параметр установлен в логическое значение true – будет происходить замена, false – не производить замены (по умолчанию).

Хорошо, с теорией разобрались, теперь можно приступить к программированию. Для начала рассмотрим программный код на языке vbscript:

'**********************************************
' Объект filesystemobject метод copyfile
' Как копировать файлы на диск
' copyfile.vbs
'**********************************************
 
Option Explicit
 
dim fso, new_folder
 
' создаем ссылку на объект Scripting.FileSystemObject
set fso=CreateObject ("Scripting.FileSystemObject")
 
' создаем в текущей папке новый каталог
set new_folder=fso.CreateFolder("Новая папка_vbs")
 
' копируем текущий сценарий в новую папку под новым именем
fso.CopyFile WScript.ScriptFullName, new_folder & "\тест_vbs.txt" , true
 
WScript.Echo "Процесс копирования завершен"

Давайте рассмотрим всё по пунктам. Сам сценарий производит создание папки «Новая папка_vbs» в текущем каталоге, для этого мы используем метод CreateFolder, после происходит копирование текущего файла (сценария) в созданную папку (метод CopyFolder класса FileSystemObject).

dim fso, new_folder – тут мы объявили переменные, fso – хранит ссылку на объект FileSystemObject, new_folder – хранит путь к новому каталогу.

set WshShell = CreateObject("Scripting.FileSystemObject ") – тут мы создаем ссылку на экземпляр объекта Wscript.Shell, тут мы используем стандартную функцию языка vbscript для создания ссылки на класс – CreateObject, также, как видим, фигурирует ключевое слово set. Объект нужен для использования метода CopyFile.

set new_folder=fso.CreateFolder("Новая папка_vbs") – тут происходит создание новой папки «Новая папка_vbs» с помощью метода CreateFolder, более детально, роботу данного метода я описал в статье «FileSystemObject метод CreateFolder«. Как копировать файл на диск.

fso.CopyFile WScript.ScriptFullName, new_folder & "тест_vbs.txt" , true – в данной строке мы производим процесс копирования текущего сценария в новый каталог, но уже под именем тест_vbs.txt. WScript.ScriptFullName содержит строку, которая определяет полный путь к текущему сценарию.

WScript.Echo "Процесс копирования завершен" – собственно, в самом конце мы выводим сообщение о завершении копирования.

Стоит обратить внимание, что я не включал проверку ошибок.

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

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

//**********************************************
// Объект filesystemobject метод copyfile
// Как копировать файлы на диск
// copyfile.js
//**********************************************
 
var fso, new_folder;
 
// создаем ссылку на объект Scripting.FileSystemObject
fso=WScript.CreateObject ("Scripting.FileSystemObject");
 
// создаем в текущей папке новый каталог
new_folder=fso.CreateFolder("Новая папка_js");
 
// копируем текущий сценарий в новую папку под новым именем
fso.CopyFile (WScript.ScriptFullName, new_folder + "\\тест_js.txt" , true);
 
WScript.Echo ("Процесс копирования завершен");

Тут я сделал некоторые изменения: изменил имя новой папки, имя конечного файла, в результате, произойдёт создание в текущей папке каталога «Новая папка_js», и копирование в нее текущего сценария, в итоге мы получим текстовый документ «тест_js.txt».

как программным путем копировать файлы на диск

И так, в этой статье мы рассмотрели, как копировать файлы на диск с помощью метода CopyFile класса FileSystemObject. Для реализации поставленной задачи мы программировали на языке vbscript и jscript.

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