FileCopy
Копирует исходный файл из локальной или общей папки в другой файл.
bool FileCopy(
const string src_file_name,
int common_flag,
const string dst_file_name,
int mode_flags
); |
Параметры
src_file_name
[in] Имя файла для копирования.
common_flag
[in] Флаг, определяющий местоположение файла. Если common_flag=FILE_COMMON, то файл находится в общей папке всех клиентских терминалов \Terminal\Common\Files. В противном случае файл находится в локальной папке (например, common_flag=0).
dst_file_name
[in] Имя результатного файла.
mode_flags
[in] Флаги доступа. Параметр может содержать только 2 флага: FILE_REWRITE и/или FILE_COMMON - остальные флаги игнорируются. Если файл уже существует и при этом не был указан флаг FILE_REWRITE, то файл не будет переписан, и функция возвратит false.
Возвращаемое значение
Примечание
Пример:
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//--- входные параметры
input string InpSrc="source.txt"; // источник
input string InpDst="destination.txt"; // копия
input int InpEncodingType=FILE_ANSI; // ANSI=32 или UNICODE=64
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- отобразим содержимое источника (он должен существовать)
if(!FileDisplay(InpSrc))
return;
//--- проверим, существует ли уже файл копии (не обязан быть создан)
if(!FileDisplay(InpDst))
{
//--- файл копии не существует, копирование без флага FILE_REWRITE (правильное копирование)
if(FileCopy(InpSrc,0,InpDst,0))
Print("File is copied!");
else
Print("File is not copied!");
}
else
{
//--- файл копии уже существует, попробуем скопировать без флага FILE_REWRITE (неправильное копирование)
if(FileCopy(InpSrc,0,InpDst,0))
Print("File is copied!");
else
Print("File is not copied!");
//--- содержимое файла InpDst останется прежним
FileDisplay(InpDst);
//--- скопируем еще раз с флагом FILE_REWRITE (правильное копирование при существовании файла)
if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE))
Print("File is copied!");
else
Print("File is not copied!");
}
//--- получили копию файла InpSrc
FileDisplay(InpDst);
}
//+------------------------------------------------------------------+
//| Чтение содержимого файла |
//+------------------------------------------------------------------+
bool FileDisplay(const string file_name)
{
//--- сбросим значение ошибки
ResetLastError();
//--- откроем файл
int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType);
if(file_handle!=INVALID_HANDLE)
{
//--- отобразим в цикле содержимое файла
Print("+---------------------+");
PrintFormat("File name = %s",file_name);
while(!FileIsEnding(file_handle))
Print(FileReadString(file_handle));
Print("+---------------------+");
//--- закроем файл
FileClose(file_handle);
return(true);
}
//--- не удалось открыть файл
PrintFormat("%s is not opened, error = %d",file_name,GetLastError());
return(false);
} |
|