Библиотека классов RxFtp: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
м →‎Примечания переводчика: замена категории на шаблон для работы полки с помощью AWB
м →‎Примечания переводчика: установка шаблона "по алфавиту" по консенсусу на форуме с помощью AWB
Строка 2280: Строка 2280:


{{Темы|Программирование}}
{{Темы|Программирование}}

{{По алфавиту}}


[[Категория:Переводы]]
[[Категория:Переводы]]

Версия от 22:02, 24 марта 2016


Open Object Rexx
Библиотека классов RxFtp
Cправочник


W. David Ashley
Rony G. Flatscher
Mark Hessling
Rick McGuire
Mark Miesfeld
Lee Peedin
Jon Wolfers


Перевод, комментарии и дополнения[1]: StLeutnant
Оригинал: смотри на сайте ooRexx


Версия 4.1.1
Опубликовано в мае 2012 года.
Copyright (с) 1995, 2004 IBM Corporation и другие. Все права защищены.
Copyright (с) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Rexx Language Association. Все права защищены.

Данная программа и сопутствующие материалы доступны для использования в соответствии с условиями Common Public License Version 1.0. Перед использованием этой информации и продуктов, доступных на данных условиях, внимательно прочитайте общие положения в разделах Уведомления.

Собственником и обладателем прав на данный документ изначально являлась IBM Corporation. В 2004 году он был пожертвован Rexx Language Association на условиях Common Public License Version 1.0, как «программное обепечение с открытым исходным кодом».

Благодарим Julian Choy за разработку логотипа ooRexx.

Об этой книге

Данная книга содержит описание библиотеки классов RxFtp Open Object Rexx и её методов.

Она ориентирована на тех пользователей, которые планируют вести разработку приложений для FTP, используя Rexx, и может использоваться широким кругом читателей — от новичков, обладающих некоторыми навыками программирования на каком-либо языке, но не знающих ни Rexx, ни FTP, до матёрых разработчиков приложений, имеющих опыт работы и с Object Rexx, и с FTP.

Эта книга — справочник, а не учебное пособие. Подразумевается, что читатели уже знакомы с концепциями объектно-ориентированного программирования.

Описания включают в себя синтаксис и использование конструкций языка, а также объяснение того, как языковый процессор интерпретирует их во время выполнения программы.

Связанная информация

Смотри также: Open Object Rexx: Справочник

Как читать синтаксические диаграммы

В тексте этой книги синтаксис описывается в соответствии с приведёнными ниже правилами.

  • Синтаксические диаграммы читаются слева направо, сверху вниз, следуя вдоль линии маршрута.
    Символы >>—— начинают описание синтаксиса оператора.
    Символы ——> обозначают, что описание синтаксиса оператора будет продолжено на следующей строке.
    Символы >—— отмечают продолжение описания синтаксиса оператора, начатого в предыдущей строке.
    Символы ——>< завершают описание синтаксиса оператора.
    Диаграммы синтаксических единиц, не являющихся полностью законченными операторами, начинаются с символов >—— и заканчиваются символами ——>.
  • Обязательные элементы размещаются на линии главного маршрута (горизонтальная линия на диаграмме).
>>——ОПЕРАТОР——обязательный_элемент—————————————————————————————><
  • Необязательные (дополнительные) элементы размещаются ниже линии главного маршрута.
>>——ОПЕРАТОР——+————————————————————————+———————————————————————><
              +—дополнительный_элемент—+
  • Если требуется сделать выбор одного из двух или более элементов, то элементы помещаются в вертикальный список.
    Если выбор надо сделать обязательно, то первый элемент списка размещается на линии главного маршрута.
>>——ОПЕРАТОР——+—обязательный_выбор1—+——————————————————————————><
              +—обязательный_выбор2—+
  • Если выбор необязательный, то весь список размещается ниже линии главного маршрута.
>>——ОПЕРАТОР——+——————————————————+—————————————————————————————><
              +—возможный_выбор1—+
              +—возможный_выбор2—+
  • Если один из элементов списка используется как выбор по умолчанию, то этот элемент размещается выше линии главного маршрута, а остальной список — ниже.
              +—выбор_по_умолчанию——+
>>——ОПЕРАТОР——+—————————————————————+——————————————————————————><
              +—возможный_выбор1————+
              +—возможный_выбор2————+
  • Стрелка, возвращающаяся влево выше линии главного маршрута, означает, что элемент может повторяться.
              +———————————————————————+
              V                       |
>>——ОПЕРАТОР————повторяющийся_элемент—+————————————————————————><
  • Стрелка повторения элементов над списком означает, что можно повторно выбирать элементы из этого списка.
  • Две вертикальные полосы вокруг элемента отмечают фрагмент. Часть синтаксической диаграммы, относящаяся к нему, будет приведена с высокой детализацией сразу после главной диаграммы.
>>——ОПЕРАТОР——| фрагмент |—————————————————————————————————————><

фрагмент:
|——расширение_с_высокой_детализациeй———————————————————————————|
  • Ключевые слова отображаются на диаграмме прописными буквами (например, PARM1). В тексте программы они должны быть записаны точно так же, как и на диаграмме, но можно использовать как прописные, так и строчные буквы.
    Переменные отображаются на диаграмме строчными буквами (например, parmx). Они представляют собой назначаемые пользователем имена или значения[2].
  • Если на диаграмме отображены знаки пунктуации, скобки, арифметические операторы или другие символы, то их требуется вводить как часть синтаксиса. Следующий пример показывает как описывается синтаксис в таком случае:
          +—,——————+
          V        |
>>——MAX(————number—+——)————————————————————————————————————————><

Замечание о примере программы в этом документе

Пример программы в этом документе представлен с использованием моноширинного шрифта, который не всегда совместим с функциями копирования-вставки текстовых редакторов. Вставка текста в редактор может привести к такому результату, когда часть символов выйдет за пределы стандартного набора ASCII-символов. Особенно часто при вставке в текстовые редакторы некорректно конвертируются символы «одиночная кавычка» и «двойная кавычка».

Помощь и обратная связь

Проект Open Object Rexx позволяет пользователям получить помощь и обеспечить обратную связь с разработчиками несколькими способами. Эти способы перечислены ниже в произвольном порядке.

Почтовая рассылка Rexx Language Association

Rexx Language Association обеспечивает членов ассоциации почтовой рассылкой. Эта почтовая рассылка доступна только членам ассоциации RexxLA. Таким образом, для включения в список рассылки требуется вступить в RexxLA. Взносы для членов ассоциации невелики и оплачиваются ежегодно. За подробностями вступления в RexxLA следует обратиться на домашнюю страницу сайта RexxLA или на страницу оформления заявки на вступление.

Проект Open Object Rexx на сайте SourceForge

Проект Open Object Rexx использует SourceForge в качестве домашней площадки проекта ooRexx для организации хранилищ исходных кодов, почтовых рассылок и прочих служб проекта. Ниже приведён список наиболее востребованных возможностей.

Форумы ooRexx

Проект ooRexx обслуживает группу форумов, на которых каждый может поднять любые темы, связанные с ooRexx, принять участие в их обсуждении или наблюдать за обсуждением. Форумы размещены на странице фoрумов ooRexx. В настоящее время доступны три форума: Помощь, Разработчики и Открытое Обсуждение. Дополнительно, можно наблюдать за дискуссиями на форумах с помощью электронной почты.

Список почтовой рассылки разработчиков

Подписаться на почтовую рассылку разработчиков ooRexx можно на странице подписки на почтовые рассылки ooRexx. Эта рассылка предназначена для обсуждения новых разработок проекта ooRexx и дальнейших усовершенствований интерпретатора. Также поддерживается исторический архив прошедших обсуждений.

Список почтовой рассылки пользователей

Подписаться на почтовую рассылку пользователей ooRexx можно на странице подписки на почтовые рассылки ooRexx. Эта рассылка предназначена для обсуждения применения ooRexx. Также поддерживается исторический архив прошедших обсуждений.

Список почтовой рассылки оповещений

Подписаться на почтовую рассылку оповещений о событиях ooRexx можно на странице подписки на почтовые рассылки ooRexx. Эта рассылка используется только для оповещения о значимых для проекта ooRexx событиях.

Список почтовой рассылки системы учёта ошибок

Подписаться на почтовую рассылку системы учёта ошибок ooRexx можно на странице подписки на почтовые рассылки ooRexx. Эта рассылка используется только для наблюдения за изменением состояния записей в системе учёта ошибок ooRexx.

Отчёты от ошибках

Создать отчёт об ошибках можно на странице отчётов об ошибках ooRexx. Пожалуйста, убедитесь, что в отчёте предоставлено как можно больше информации, чтобы разработчики могли как можно быстрее решить проблему. Примеры программ, в которых воспроизводится возникшая проблема, позволят облегчить поиски её решения.

Обратная связь для обсуждения документации

Предоставить обратный адрес для обсуждения документации или сообщить об ошибках в ней можно на странице отчётов о документации ooRexx. Пожалуйста, убедитесь, что в отчёте предоставлено как можно больше информации. Выделение проблемного места кавычками, в дополнение к распечатке документа и указанию номера раздела, поможет разработчикам определить местоположение текста в исходном материале, использованном при подготовке документации (номера разделов генерируются при подготовке документации и отсутствуют в исходных материалах как таковые). Также следует включить предложения о том, как перефразировать или исправить существующий текст.

Запрос на усовершенствование

Предложить реализовать новые возможности ooRexx можно на странице запросов усовершенствований ooRexx.

Отчёты об исправлениях

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

Группа новостей comp.lang.rexx

Группа новостей comp.lang.rexx — прекрасное место для получения помощи от множества представителей сообщества специалистов, использующих Rexx. Здесь можно получить помощь не только по Open Object Rexx, но и по любому количеству других интерпретаторов и инструментов Rexx.

Что такое RxFtp?

RxFtp — это библиотека классов Object Rexx, предоставляющая доступ к TCP/IP интерфейсу FTP, основанному на RFC 959. Предполагается, что читатель знаком с базовой функциональностью FTP и её спецификой в системе. За более подробной информацией обратитесь к книге Douglas Comer «Internetworking with TCP/IP, Volume I: Principles, Protocols and Architecture» (Prentice Hall PTR). Для работы пакету RxFtp требуется пакет внешних функций RxSock, поддерживаемый Open Object Rexx.

Установка

Пакет RxFtp содержится в файле rxftp.cls. Этот файл должен быть помещен в один из каталогов, перечисленных в переменной окружения PATH. Для получения доступа к классу и его методам необходимо добавить директиву ::REQUIRES в каждый скрипт Object Rexx, который будет использовать этот класс:

. . .
::requires "rxftp.cls"

Создать конкретный экземпляр класса можно по обычным соглашениям Object Rexx:

obj = .rxftp~new

Каждый экземпляр класса полностью инкапсулирует сессию с сервером FTP. Это значит, что возможно создание множества экземпляров класса и наличие множества открытых соединений с серверами FTP одновременно.

Замечания по использованию RxFtp

  1. Метод FtpProxy отсутствует в классе RxFtp.
  2. Межсетевые экраны могут препятствовать нормальной работе многих методов RxFtp, например, ограничением передачи данных как в активном, так и в пассивном режимах FTP. Особенно это касается активного режима FTP, когда клиент работает за локальным межсетевым экраном (например, в WindowsXP SP2 или в большинстве современных сборок Linux).
  3. Каждый экземпляр класса RxFtp устанавливает собственное соединение с сервером FTP. Таким образом, можно создать множество экземпляров этого класса и соединиться с множеством серверов FTP одновременно. Также каждый экземпляр класса можно использовать повторно — экземпляр класса, деинициализированный методом FtpLogoff, можно повторно инициализировать методом FtpSetUser, который установит новое соединение с сервером FTP.

Методы RxFtp

Каждый параграф этой главы описывает вызов одного из методов RxFtp в программном окружении Rexx.

FtpAppend

Метод FtpAppend дописывает содержимое локального файла в конец существующего на сервере FTP файла. Если указанный файл не существует на сервере FTP, то он создаётся.

Синтаксис:

>>——obj~FtpAppend(——localfile,——remotefile——+———————————+——)———————><
                                            +——,——type——+

Аргументы:

localfile
Имя и, возможно, путь к локальному файлу, который будет дописан к файлу на сервере FTP.
remotefile
Имя и, возможно, путь к файлу на сервере FTP, к которому будет дописано содержимое локального файла. Если путь не указан, то используется текущий каталог на сервере FTP. Если файл отсутствует на сервере FTP, то он создаётся.
type[3]
Строка, идентифицирующая тип представления данных, используемый при передаче:
'ASCII'
Данные в текстовом представлении ASCII.
'BINARY'
Данные в двоичном представлении.
Значащим является только первый символ строки, независимо от регистра. Если аргумент опущен, то используется текущий[4] тип представления.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpChDir

Метод FtpChDir назначает текущим каталогом на сервере FTP указанный каталог. Если во время выполнения возникли ошибки, то текущий каталог не изменяется.

Синтаксис:

>>——obj~FtpChDir(——remotedir——)————————————————————————————————————><

Аргументы:

remotedir
Имя и, возможно, путь к каталогу на сервере FTP, который будет назначен текущим.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpDelete

Метод FtpDelete удаляет указанный файл с сервера FTP.

Синтаксис:

>>——obj~FtpDelete(——remotefile——)——————————————————————————————————><

Аргументы:

remotefile
Имя и, возможно, путь к файлу на сервере FTP, который будет удалён. Если путь не указан, то используется текущий каталог на сервере FTP.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpDir

Метод FtpDir возвращает список содержимого каталога сервера FTP в полном формате. Список содержимого каталога помещается в атрибут Response экземпляра класса в виде массива Object Rexx, элементами которого являются строки этого списка. В случае ошибки возвращается пустой массив.

Формат возвращаемого списка содержимого каталога зависит от операционной системы, установленной на машине с сервером FTP.

Синтаксис:

>>——obj~FtpDir(——+———————————+——)——————————————————————————————————><
                 +——pattern——+

Аргументы:

pattern
Шаблон имени файлов, применяемый для выборки содержимого каталога. В шаблоне можно использовать стандартные символы-заменители '*' и '?'. Если аргумент опущен, то, по умолчанию, используется шаблон './*'.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpGet

Метод FtpGet получает от сервера FTP одиночный файл.

Синтаксис:

>>——obj~FtpGet(——localfile,——remotefile——+———————————+——)——————————><
                                         +——,——type——+

Аргументы:

localfile
Имя и, возможно, путь к локальному файлу, в котором будет сохранён полученный от сервера FTP файл. Если путь не указан, то используется локальный текущий каталог.
remotefile
Имя и, возможно, путь к отправляемому сервером FTP файлу. Если путь не указан, то будет отправлен файл из текущего каталога сервера FTP.
type[3]
Строка, идентифицирующая тип представления данных, используемый при передаче:
'ASCII'
Данные в текстовом представлении ASCII.
'BINARY'
Данные в двоичном представлении.
Значащим является только первый символ строки, независимо от регистра. Если аргумент опущен, то используется текущий[4] тип представления.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpGetMode

Метод FtpGetMode[5] возвращает строку, идентифицирующую текущий[4] режим FTP[6].

Синтаксис:

>>——obj~FtpGetMode()———————————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Строка, идентифицирующая текущий режим FTP:
'ACTIVE'
Активный режим FTP.
'PASSIVE'
Пассивный режим FTP.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpGetType

Метод FtpGetType[5] возвращает строку, идентифицирующую текущий[4] тип представления[7] данных, использующийся при приёме/передаче данных.

Синтаксис:

>>——obj~FtpGetType()———————————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Строка, идентифицирующая текущий тип представления данных, использующийся при приёме/передаче данных:
'ASCII'
Данные в текстовом представлении ASCII.
'BINARY'
Данные в двоичном представлении.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpLogoff

Метод FtpLogoff завершает сессию и закрывает соединение с сервером FTP. Он также переинициализирует экземпляр класса и его можно будет использовать снова.

Синтаксис:

>>——obj~FtpLogoff()————————————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpLs

Метод FtpLs возвращает список содержимого каталога сервера FTP в кратком формате. Список содержимого каталога помещается в атрибут Response экземпляра класса в виде массива Object Rexx, элементами которого являются строки этого списка. В случае ошибки возвращается пустой массив.

Обычно в элементы массива помещаются только имена файлов из списка содержимого указанного каталога. Но формат данных может отличаться в некоторых случаях.

Синтаксис:

>>——obj~FtpLs(——+———————————+——)———————————————————————————————————><
                +——pattern——+

Аргументы:

pattern
Шаблон имени файлов, применяемый для выборки содержимого каталога. В шаблоне можно использовать стандартные символы-заменители '*' и '?'. Если аргумент опущен, то, по умолчанию, используется шаблон './*'.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpMkDir

Метод FtpMkDir создаёт новый подкаталог на сервере FTP.

Синтаксис:

>>——obj~FtpMkDir(——remotedir——)————————————————————————————————————><

Аргументы:

remotedir
Имя нового подкаталога на сервере FTP и, возможно, путь к нему. Если путь не указан, то подкаталог создаётся в текущем каталоге на сервере FTP.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpPut

Метод FtpPut передаёт на сервер FTP одиночный файл.

Синтаксис:

>>——obj~FtpPut(——localfile,——remotefile——+———————————+——)——————————><
                                         +——,——type——+

Аргументы:

localfile
Имя и, возможно, путь к локальному файлу, который будет передан на сервер FTP. Если путь не указан, то используется локальный текущий каталог.
remotefile
Имя и, возможно, путь к файлу на сервере FTP, в который будет сохранён передаваемый локальный файл. Если путь не указан, то файл будет сохранён в текущий каталог сервера FTP.
type[3]
Строка, идентифицирующая тип представления данных, используемый при передаче:
'ASCII'
Данные в текстовом представлении ASCII.
'BINARY'
Данные в двоичном представлении.
Значащим является только первый символ строки, независимо от регистра. Если аргумент опущен, то используется текущий[4] тип представления.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpPutUnique

Метод FtpPutUnique передаёт на сервер FTP одиночный файл. Если файл существует на сервере FTP, то он сохраняется с новым уникальным именем[8].

Синтаксис:

>>——obj~FtpPutUnique(——localfile,——remotefile——+———————————+——)————><
                                               +——,——type——+

Аргументы:

localfile
Имя и, возможно, путь к локальному файлу, который будет передан на сервер FTP. Если путь не указан, то используется локальный текущий каталог.
remotefile
Имя и, возможно, путь к файлу на сервере FTP, в который будет сохранён передаваемый локальный файл. Если файл существует на сервере FTP, то он сохраняется с новым уникальным именем[8]. Если путь не указан, то файл будет сохранён в текущий каталог сервера FTP.
type[3]
Строка, идентифицирующая тип представления данных, используемый при передаче:
'ASCII'
Данные в текстовом представлении ASCII.
'BINARY'
Данные в двоичном представлении.
Значащим является только первый символ строки, независимо от регистра. Если аргумент опущен, то используется текущий[4] тип представления.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpPwd

Метод FtpPwd возвращает имя текущего каталога на сервере FTP, включая путь к нему. Информация помещается в атрибут Response экземпляра класса в виде массива Object Rexx, единственным элементом которого является строка с именем текущего каталога, включая путь к нему. В случае ошибки возвращается пустой массив.

Синтаксис:

>>——obj~FtpPwd()———————————————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpQuote

Метод FtpQuote отправляет серверу FTP команду на выполнение.

Синтаксис:

>>——obj~FtpQuote(——command——)——————————————————————————————————————><

Аргументы:

command
Команда, которую должен выполнить сервер FTP.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpRename

Метод FtpRename переименовывает существующий файл на сервере FTP. На серверах FTP, работающих под UNIX, этот метод может также перемещать файл из одного каталога в другой с новым или прежним именем.

Синтаксис:

>>——obj~FtpRename(——remoteold,——remotenew——)———————————————————————><

Аргументы:

remoteold
Имя и, возможно, путь к файлу на сервере FTP, который будет переименован.
remotenew
Новое имя и, возможно, путь к файлу на сервере FTP.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpRmDir

Метод FtpRmDir удаляет каталог с сервера FTP.

Синтаксис:

>>——obj~FtpRmDir(——remotedir——)————————————————————————————————————><

Аргументы:

remotedir
Имя удаляемого каталога на сервере FTP и, возможно, путь к нему. Если путь не указан, то каталог удаляется из текущего каталога на сервере FTP.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpSetMode

Метод FtpSetMode устанавливает текущий[4] режим FTP для приёма/передачи данных. В случае ошибки текущий режим FTP не изменяется.

Синтаксис:

>>——obj~FtpSetMode(——mode——)———————————————————————————————————————><

Аргументы:

mode
Строка, идентифицирующая режим FTP, устанавливаемый в качестве текущего:
'ACTIVE'
Активный режим FTP.
'PASSIVE'
Пассивный режим FTP.
Значащим является только первый символ строки, независимо от регистра.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpSetType

Метод FtpSetType устанавливает текущий[4] тип представления[7] данных, использующийся при приёме/передаче данных. В случае ошибки текущий тип представления данных не изменяется.

Синтаксис:

>>——obj~FtpSetType(——type——)———————————————————————————————————————><

Аргументы:

type
Строка, идентифицирующая тип представления данных, устанавливаемый в качестве текущего:
'ASCII'
Данные в текстовом представлении ASCII.
'BINARY'
Данные в двоичном представлении.
Значащим является только первый символ строки, независимо от регистра.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpSetUser

Метод FtpSetUser открывает сессию с сервером FTP, то есть устанавливает соединение и регистрирует пользователя.

Синтаксис:

>>——obj~FtpSetUser(——host,——user——+————————————————————————+——)————><
                                  +——,——passw——+———————————+
                                               +——,——accn——+

Аргументы:

host
Имя или IP-адрес узла сервера FTP.
user
Имя пользователя на сервере FTP.
passw
Пароль пользователя.
accn
Информация об аккаунте пользователя.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.
FTPHOST
Имя узла неизвестно или сервер не отвечает.
FTPSOCKET
Ошибка функции библиотеки RxSock.
FTPCONNECT
Сервер не отвечает или не доступен.
FTPLOGIN
Имя пользователя, пароль или информация об аккаунте не верны.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpSite

Метод FtpSite отправляет серверу FTP сервисную команду.

Синтаксис:

>>——obj~FtpSite(——command——)———————————————————————————————————————><

Аргументы:

command
Сервисная команда, управляющая сервером FTP.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpSys

Метод FtpSys возвращает информацию об операционной системе сервера FTP. Информация помещается в атрибут Response экземпляра класса в виде массива Object Rexx, единственным элементом которого является строка с информацией об операционной системе. В случае ошибки возвращается пустой массив.

Синтаксис:

>>——obj~FtpSys()———————————————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpTrace

Метод FtpTrace запускает трассировку команд FTP. В начальном состоянии трассировка отключена. После включения трассировки на консоли будут отображаться все команды, отправляемые на сервер FTP, и полученные от него ответы.

Синтаксис:

>>——obj~FtpTrace()—————————————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpTraceLog

Метод FtpTraceLog помещает все команды, отправляемые на сервер FTP, и полученные от него ответы в текущий буфер трассировки с последующей записью его в файл журнала.

Синтаксис:

>>——obj~FtpTraceLog(——localfile——+—————————————+——)————————————————><
                                 +——,——action——+

Аргументы:

localfile
Имя и, возможно, путь к локальному файлу журнала. Если путь не указан, то используется локальный текущий каталог.
action
Строка, задающая действие при записи файла журнала:
'REPLACE'
Если файл журнала уже существует, то перед записью новых данных он будет очищен.
Значащим является только первый символ строки, независимо от регистра. Если аргумент опущен и файл журнала существует, то новые данные дописываются в конец файла.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpTraceLogoff

Метод FtpTraceLogoff останавливает трассировку команд FTP.

Синтаксис:

>>——obj~FtpTraceLogoff()———————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Значение 0 возвращается в случае успешного выполнения. Значение -1 возвращается в случае возникновение ошибки в ходе выполнения. Конкретный код ошибки можно узнать, обратившись к атрибуту FtpErrno экземпляра класса.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpVersion

Метод FtpVersion возвращает номер версии библиотеки классов RxFtp в формате x.y.z.

Синтаксис:

>>——obj~FtpVersion()———————————————————————————————————————————————><

Аргументы:

Аргументов нет.

Возвращаемое значение:

Строка с номером версии библиотеки классов RxFtp в формате x.y.z.

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

Дополнительные атрибуты RxFtp

Каждый параграф этой главы описывает один из дополнительных атрибутов класса RxFtp.

BufSize

Атрибут BufSize содержит размер буфера, используемого методами RxFtp. По умолчанию, он равен 4096 и может быть изменён присвоением любого целого положительного значения. Увеличение размера буфера может ускорить выполнение транзакций FTP. Однако, чрезмерно большой размер буфера может, наоборот, замедлить их. В каждом конкретном случае это выясняется экспериментальным путём. Приведённый ниже пример демонстрирует отображение текущего размера буфера на консоли и изменение его размера до 8192.

Пример:

. . .
say obj~BufSize
obj~BufSize = 8192
. . .

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

CmdResponse

Атрибут CmdResponse представляет собой массив Object Rexx, содержащий, в качестве элементов, строки с командами, отправленными серверу FTP, и его ответы на них. Новые элементы последовательно добавляются к этому массиву при каждом вызове методов класса в текущей сессии FTP. Этот массив содержит полный протокол действий пользователя и реакции сервера на них в форме «команда - ответ». Приведённый ниже пример отображает на консоли содержимое атрибута.

Пример:

. . .
do i = 1 to obj~cmdresponse~items
   say obj~cmdresponse[i]
end
. . .

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

CR_Remove

Атрибут CR_Remove может находиться в одном из двух состояний. Если он установлен в состояние .true, то символы «возврат каретки» ('0D'x, CR) будут автоматически удаляться при загрузке файлов в текстовом представлении ASCII, когда класс RxFtp исполняется на платформе UNIX. Если он установлен в состояние .false, то символы «возврат каретки» ('0D'x, CR) останутся в сохраняемом локальном файле. Атрибут игнорируется машинами на платформах, отличных от UNIX. По умолчанию используется значение .true. Приведённый ниже пример отключает удаление символов «возврат каретки».

Пример:

. . .
obj~cr_remove = .false
. . .

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

Debug

Атрибут Debug может находиться в одном из двух состояний. Если он установлен в состояние .true, то на STDOUT будут отправляться отладочные сообщения. Если он установлен в состояние .false, то все отладочные сообщения подавляются. По умолчанию используется значение .false. Приведённый ниже пример включает режим отладки.

Пример:

. . .
obj~debug = .true
. . .

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

FtpErrno

Атрибут FtpErrno содержит расширенную информацию об ошибке, возникшей во время выполнения метода RxFtp. Это может быть строка с кодом ошибки или строка нулевой длины, если метод завершился без ошибок.

Возможные значения кода ошибки:

FTPCOMMAND
Ошибка при выполнении внутренней команды FTP или в аргументах, переданных методу при вызове.
FTPHOST
Имя узла неизвестно или сервер не отвечает.
FTPSOCKET
Ошибка функции библиотеки RxSock.
FTPCONNECT
Сервер не отвечает или не доступен.
FTPLOGIN
Имя пользователя, пароль или информация об аккаунте не верны.

Приведённый ниже пример демонстрирует отображение информации об ошибке на консоли.

Пример:

. . .
if obj~ftperrno <> "" then say obj~ftperrno
. . .

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

Response

Атрибут Response может находиться в одном из двух состояний. Если он тождественнен объекту .nil, то это значит, что выполненная команда не сгенерировала ответ. Во всех остальных случаях атрибут Response представляет собой массив Object Rexx, содержащий, в качестве элементов, строки сгенерированного командой ответа. Типичным значением Response можно считать возвращаемый методом FtpDir список содержимого каталога. Приведённый ниже пример отображает на консоли содержимое атрибута.

Пример:

. . .
if obj~response <> .nil then do i = 1 to obj~response~items
   say obj~response[i]
end
. . .

BufSize . CmdResponse . CR_Remove . Debug . FtpAppend . FtpChDir . FtpDelete . FtpDir . FtpErrno . FtpGet . FtpGetMode . FtpGetType . FtpLogoff . FtpLs . FtpMkDir . FtpPut . FtpPutUnique . FtpPwd . FtpQuote . FtpRename . FtpRmDir . FtpSetMode . FtpSetType . FtpSetUser . FtpSite . FtpSys . FtpTrace . FtpTraceLog . FtpTraceLogoff . FtpVersion . Response .

Приложения

Пример программы, использующей класс RxFtp

Следующий ниже пример демонстрирует использование методов библиотеки классов RxFtp.


/*============================================================*/
/* Basic RxFTP sample to send a file with cmd/reply logging   */
/*============================================================*/

/* Define the variables for: */
server = "127.0.0.1" /* IP address or server name */
userid = "remote_user_ID"
passwd = "password_of_remote_user"
trclog = "logfile.txt" /* Trace log file name */
retc = 0 /* Set return code to 0 */
myftp = .rxftp~new()

/* Start tracing FTP commands and logging of replies */
retc = myftp~FtpTrace()

/* Trace log file will be replaced, not appended to. */
retc = myftp~FtpTraceLog(trclog, "R")
If retc = 0 then 
   Say " Replies will be written to log file: "trclog"."
Else 
   Say " No writing to log file: "trclog" possible."

/* Define remote host and user to be used during the session */
retc = myftp~FtpSetUser(server, userid, passwd)
If retc = 0 then Say " Connection established."
Else Call Terminate " *** Connection failed."

/* Transfer an ASCII file to the remote ftp server */
retc = myftp~FtpPut("sample.rex", "sample.put", "ASCII")
If retc = 0 then Call Terminate " File has been sent. "
Else Call Terminate " *** File has NOT been sent."

/* Terminate the file transfer */
Terminate:
Parse Arg Message
Say Message
Say "FtpErrNo =" myftp~ftperrno
retc = myftp~FtpLogoff()
retc = myftp~FtpTraceLogoff()
retc = myftp~FtpTrace()
exit retc

::requires "rxftp.cls"

Замечания

Любая ссылка на продукт, программу или службу, не явлющуюся программным обеспечением с открытым исходным кодом, не означает и не подразумевает, что может использоваться только продукт, программа или служба, не явлющаяся программным обеспечением с открытым исходным кодом. Вместо этого может использоваться любой функционально эквивалентный продукт, программа или служба, не нарушающая право интеллектуальной собственности Rexx Language Association (RexxLA). Однако, пользователь может оценить и проверить работу любого продукта, программы или службы, не явлющихся программным обеспечением с открытым исходным кодом.

Все данные о производительности, содержащиеся здесь, были получены в определенной операционной среде. Поэтому результаты, полученные в другой операционной среде, могут значительно отличаться. Некоторые замеры, возможно, были сделаны в системах уровня разработки и нет никакой гарантии, что такие же замеры дадут те же самые результаты в общедоступных системах. Кроме того, некоторые результаты, возможно, были получены методом экстраполяции. Фактические же результаты могут отличаться. Пользователи этого документа должны проверить применимость данных для своей операционной среды.

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

Все заявления относительно будущего направления и перспектив развития RexxLA могут быть измененены или отброшены без уведомления и отражают только поставленные цели и задачи.

Этот документ содержит примеры данных и отчетов, использующихся в ежедневных деловых операциях. Чтобы проиллюстрировать их максимально полно, примеры включают в себя имена людей, компаний, брендов и продуктов. Все эти имена — вымышленные и любые совпадения имен и адресов, используемых вымышленными коммерческими предприятиями, полностью случайны.

Торговые марки

Open Object Rexx и ooRexx — торговая марка Rexx Language Association.

Следующие названия являются торговыми марками IBM Corporation в США, в других странах или во всём мире:

1-2-3
AIX
IBM
Lotus
OS/2
S/390
VisualAge

AMD — торговая марка Advance Micro Devices, Inc.

Intel, Intel Inside (логотипы), MMX и Pentium — торговые марки Intel Corporation в США, в других странах или во всём мире.

Java и все, относящиеся к Java, торговые марки принадлежат Sun Microsystems, Inc. в США, в других странах или во всём мире.

Linux — торговая марка Linus Torvalds в США, в других странах или во всём мире.

Microsoft, Windows, Windows NT и логотип Windows — торговые марки Microsoft Corporation в США, в других странах или во всём мире.

UNIX — зарегистрированная торговая марка Open Group в США и в других странах.

Имена других компаний, продуктов или служб могут быть чьими-то торговыми или сервисными марками.

Исходный код документа

Исходный код этого документа доступен на условиях Common Public License Version 1.0, которая распространяется вместе с документом и доступна в приложении «Common Public License Version 1.0». Сам исходный код документа доступен на странице http://sourceforge.net/project/showfiles.php?group_id=119701. Исходный код этого документа подготовлен в формате DocBook SGML/XML.

Common Public License Version 1.0

От переводчика: ссылки на перевод текста лицензии можно найти на странице Common Public License Version 1.0 в Википедии.

Примечания переводчика

  1. Дополнения от переводчика, касающиеся сравнения данной библиотеки с библиотекой функций RxFtp Classic Rexx, вынесены на отдельные страницы.
  2. Дополнительно к сказанному, авторы документа придерживаются правила записи имен методов и атрибутов класса на синтаксических диаграммах смешанным стилем с использованием прописных и строчных букв, например, FtpAppend.
  3. а б в г В оригинале — mode. А в описании аргумента авторы используют термин «режим передачи» (англ. transfer mode). Однако, в RFC 959 понятие «режим передачи» (англ. transfer mode) увязано со способом организации данных для передачи, задаваемым командой FTP MODE: STREAM, BLOCK или COMPRESSED. А ключевые слова BINARY и ASCII связаны с понятием «тип представления» (англ. representation type), то есть с тем, что представляют собой передаваемые данные — текст в ASCII, текст в EBCDIC, просто двоичные данные и так далее. Задаёт тип представления данных, используемый при передаче и хранении, команда FTP TYPE: ASCII, EBCDIC, IMAGE (он же BINARY) и так далее. Поэтому при переводе, чтобы устранить возникающую путаницу, переводчик счёл возможным изменить имя аргумента mode на type в описании синтаксиса и применить более подходящий термин «тип представления» в описании аргумента.
  4. а б в г д е ё ж При инициализации экземпляра класса текущими становятся пассивный режим FTP и тип представления данных в виде текста ASCII.
  5. а б В оригинале — FtpSetType, но это явно опечатка.
  6. В оригинале — англ. transfer mode (режим передачи). Однако, в RFC 959 понятие «режим передачи» (англ. transfer mode) увязано со способом организации данных для передачи, задаваемым командой FTP MODE: STREAM, BLOCK или COMPRESSED. Понятия же «активный режим» и «пассивный режим» связаны с различием способов организации канала данных, применяемых командами FTP PORT и PASV. Поэтому при переводе, чтобы устранить возникающую путаницу, переводчик использовал термин «режим FTP».
  7. а б В оригинале — англ. transfer type (тип передачи). Переводчик счёл более уместным использовать термин «тип представления» (англ. representation type) из RFC 959.
  8. а б Новое уникальное имя обычно образуется добавлением цифрового индекса к имени файла.