SysCopyFiles

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Работа с файлами >

SysCopyFiles

Функциональный блок SysCopyFiles служит для копирования рабочих папок или файлов.

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

Вид в дереве

Вид в редакторе FBD

SysCopyFiles

SysCopyFiles_1

Входы и выходы ФБ:

Название

Тип

Назначение

Входы

SourcePath

STRING

Задается путь к папке (исходная папка) из которой будет производиться копирование. Можеть быть абсолютным или относительно рабочей папки

TargetPath

STRING

Задается путь к папке (конечная папка), в которую будет производиться копирование папок или файлов

Wildcard

STRING

Задается шаблон для выбора копируемых файлов при помощи знака *, существует четыре варианта использования шаблона:

*, в этом случае в конечную папку будут скопированы все файлы или папки (копирование папок зависит от значения входа Recursive) без формирования папки с именем исходной

*.txt, в этом случае в конечную папку будут скопированы файлы исходной папки с расширением .txt

*1*, в этом случае в конечную папку будут скопированы папки и файлы исходной папки содержащие 1 в названии

*1.txt, в этом случае в конечную папку будут скопированы файлы исходной папки оканчивающиеся на 1 с расширением .txt

Recursive

BOOL

Если значение будет равно TRUE, то дополнительно копируются все подпапки со всем содержимым из исходной папки. Если значение равно FALSE, то из исходной папки будут копироваться только файлы.

Overwrite

BOOL

Если значение будет равно TRUE, то уже существующие в конечной папке файлы и папки будут перезаписаны. Если же значение будет равно FALSE, то при копировании уже существующих папок или файлов на выходе ErrorText будет сформировано сообщение об ошибке.

Run

BOOL

Запускается процесс копирования из исходной папки в конечную

Выходы

FilesCount

DINT

Выдается количество скопированных файлов

FolderCount

DINT

Выдается количество скопированных папок

ErrorCode

DINT

Выдается код ошибки

ErrorText

STRING

Выдается текст ошибки

Пример работы с функциональным блоком

Рассмотрим пример работы с функциональным блоком. Пусть нужно скопировать все содержимое папки Test в папку TestCopy.

В проект добавляем программу FBD, в нее из библиотеки BaseObjects\ФБ\Системные переносим ФБ SysCopyFiles и устанавливаем связь параметров с входами и выходами.

SysCopyFiles_2

Далее в окно объекта методом drag-n-drop выносятся правой кнопкой мыши параметры SourcePath_1, TargertPath_1 и Wildcard_1 как текстовый ввод. Параметры Recursive_1 и Overwrite_1 выносятся на окно как кнопка с фиксацией. FilesCount_1, FolderCount_1, ErrorCount_1 и ErrorText_1 выносятся на окно как текст. В конце, в окно объекта выносится программа FBD, после чего она будет сформирована кнопку с действием Вызвать программу.

После того, как все параметры были помещены окно, можно запускать проект на исполнение.

SysCopyFiles_3

В поле текстового ввода SourcePath указываем путь на исходную папку, в поле текстового ввода TargetPath указываем путь на конечную папку и в поле текстового ввода Wildcard указываем шаблон для выбора файлов, которые будет копироваться (в нашем случае все файлы содержащие 2 в своем названии).

Нажимаем на кнопку вызова программы и проверяем результат.

SysCopyFiles_4