Библиотека классов RxFtp
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, как «программное обеспечение с открытым исходным кодом».
Об этой книге
править
Данная книга содержит описание библиотеки классов RxFtp Open Object Rexx и её методов. Она ориентирована на тех пользователей, которые планируют вести разработку приложений для FTP, используя Rexx, и может использоваться широким кругом читателей — от новичков, обладающих некоторыми навыками программирования на каком-либо языке, но не знающих ни Rexx, ни FTP, до матёрых разработчиков приложений, имеющих опыт работы и с Object Rexx, и с FTP. Эта книга — справочник, а не учебное пособие. Подразумевается, что читатели уже знакомы с концепциями объектно-ориентированного программирования. Описания включают в себя синтаксис и использование конструкций языка, а также объяснение того, как языковый процессор интерпретирует их во время выполнения программы. |
Связанная информация
править
Смотри также: Open Object Rexx: Справочник |
Как читать синтаксические диаграммы
править
В тексте этой книги синтаксис описывается в соответствии с приведёнными ниже правилами.
>>——ОПЕРАТОР——обязательный_элемент—————————————————————————————><
>>——ОПЕРАТОР——+————————————————————————+———————————————————————><
+—дополнительный_элемент—+
>>——ОПЕРАТОР——+—обязательный_выбор1—+——————————————————————————><
+—обязательный_выбор2—+
>>——ОПЕРАТОР——+——————————————————+—————————————————————————————><
+—возможный_выбор1—+
+—возможный_выбор2—+
+—выбор_по_умолчанию——+
>>——ОПЕРАТОР——+—————————————————————+——————————————————————————><
+—возможный_выбор1————+
+—возможный_выбор2————+
+———————————————————————+
V |
>>——ОПЕРАТОР————повторяющийся_элемент—+————————————————————————><
>>——ОПЕРАТОР——| фрагмент |—————————————————————————————————————><
фрагмент:
|——расширение_с_высокой_детализациeй———————————————————————————|
+—,——————+
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
править
|
Методы RxFtp
править
Каждый параграф этой главы описывает вызов одного из методов RxFtp в программном окружении Rexx. |
FtpAppend
править
Метод FtpAppend дописывает содержимое локального файла в конец существующего на сервере FTP файла. Если указанный файл не существует на сервере FTP, то он создаётся. Синтаксис: >>——obj~FtpAppend(——localfile,——remotefile——+———————————+——)———————><
+——,——type——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)——————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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()———————————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
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()———————————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
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()————————————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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()———————————————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)——————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)———————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)———————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)———————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——)———————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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()———————————————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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()—————————————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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——+
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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()———————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
Возможные значения кода ошибки:
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()———————————————————————————————————————————————><
Аргументы:
Возвращаемое значение:
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. Это может быть строка с кодом ошибки или строка нулевой длины, если метод завершился без ошибок. Возможные значения кода ошибки:
Приведённый ниже пример демонстрирует отображение информации об ошибке на консоли. Пример: . . .
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 в США, в других странах или во всём мире:
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 в Википедии. |
Примечания переводчика
править- ↑ Дополнения от переводчика, касающиеся сравнения данной библиотеки с библиотекой функций RxFtp Classic Rexx, вынесены на отдельные страницы.
- ↑ Дополнительно к сказанному, авторы документа придерживаются правила записи имен методов и атрибутов класса на синтаксических диаграммах смешанным стилем с использованием прописных и строчных букв, например, FtpAppend.
- ↑ а б в г В оригинале — 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 в описании синтаксиса и применить более подходящий термин «тип представления» в описании аргумента.
- ↑ а б в г д е ё ж При инициализации экземпляра класса текущими становятся пассивный режим FTP и тип представления данных в виде текста ASCII.
- ↑ а б В оригинале — FtpSetType, но это явно опечатка.
- ↑ В оригинале — англ. transfer mode (режим передачи). Однако, в RFC 959 понятие «режим передачи» (англ. transfer mode) увязано со способом организации данных для передачи, задаваемым командой FTP MODE: STREAM, BLOCK или COMPRESSED. Понятия же «активный режим» и «пассивный режим» связаны с различием способов организации канала данных, применяемых командами FTP PORT и PASV. Поэтому при переводе, чтобы устранить возникающую путаницу, переводчик использовал термин «режим FTP».
- ↑ а б В оригинале — англ. transfer type (тип передачи). Переводчик счёл более уместным использовать термин «тип представления» (англ. representation type) из RFC 959.
- ↑ а б Новое уникальное имя обычно образуется добавлением цифрового индекса к имени файла.