<< Click to Display Table of Contents >> Navigation: Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Работа с файлами > SysCopyFiles |
Функциональный блок SysCopyFiles служит для копирования рабочих папок или файлов.
В качестве примера использования функционального блока можно рассмотреть отдельный сервер Nginx. В нём отчеты не открываются с сервера, поэтому на него их нужно копировать.
Вид в дереве |
Вид в редакторе FBD |
Входы и выходы ФБ:
Название |
Тип |
Назначение |
Входы |
||
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 и устанавливаем связь параметров с входами и выходами.
Далее в окно объекта методом drag-n-drop выносятся правой кнопкой мыши параметры SourcePath_1, TargertPath_1 и Wildcard_1 как текстовый ввод. Параметры Recursive_1 и Overwrite_1 выносятся на окно как кнопка с фиксацией. FilesCount_1, FolderCount_1, ErrorCount_1 и ErrorText_1 выносятся на окно как текст. В конце, в окно объекта выносится программа FBD, после чего она будет сформирована кнопку с действием Вызвать программу.
После того, как все параметры были помещены окно, можно запускать проект на исполнение.
В поле текстового ввода SourcePath указываем путь на исходную папку, в поле текстового ввода TargetPath указываем путь на конечную папку и в поле текстового ввода Wildcard указываем шаблон для выбора файлов, которые будет копироваться (в нашем случае все файлы содержащие 2 в своем названии).
Нажимаем на кнопку вызова программы и проверяем результат.