Компонент TNMFTP

   
На этом шаге мы рассмотрим основные свойства и методы компонента TNMFTP.

   
Компонент TNMFTP предназначается для обмена файлами между сервером FTP и клиентской машиной по протоколу FTP.
FTP является одной из старейших и заслуженных служб Интернет. Она существовала тогда, когда еще не было
WWW, и предоставляла удобный по тем временам сервис для обмена файлами и организации различных архивов
документов и программ. Сейчас получить доступ к серверу FTP можно непосредственно из браузера WWW,
так что клиентские программы для работы с сервером FTP уже не так актуальны. Мы рассмотрим пример с этим компонентом,
поскольку такая программа может потребоваться для работы с корпоративным FTP-сервером, где доступ разграничен
и требуется пройти идентификацию для доступа к файловому архиву.

   
Перед использованием компонента TNMFTP для обмена файлами с удаленным компьютером вам нужно "подключиться" к серверу FTP.
Для этого вы должны определить свойства Host и Port значениями, соответствующими нужному серверу FTP.
Затем задайте в свойствах UserID и Password необходимые имя пользователя и пароль. Многие публичные серверы
FTP принимают имя Anonymous в качестве имени пользователя и в качестве пароля ваш e-mail или строку,
напоминающую e-mail, например, user@mycomputer.com. Главное, чтобы в этой строке присутствовал
символ "коммерческое эт" (@). Таких "анонимных" серверов в Интернет довольно много, и используются они
как публичные архивы программ и документов. После определения этих свойств вызывайте метод Connect для установления связи с сервером.

   
Этот компонент имеет следующие основные свойства:

  • CurrentDir - имя текущей директории или папки;
  • FTPDirectoryList - значение учитывается тогда, когда свойство ParseList установлено в True. Свойство
    FTPDirectoryList содержит разобранный листинг директории, полученный методом List;
  • Событие OnListItem возникает при чтении директории;
  • ParseList - определяет возможность разбора директории;
  • Password - задает пароль для подключения к серверу;
  • UserID - содержит имя пользователя;
  • Vendor - используется для определения производителя сервера.

   
Специфических методов у этого компонента несколько больше:

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

   
Если метод компонента TNMFTP завершается успешно, то генерируется событие OnSuccess, в противном случае происходит событие
OnFailure. В обоих случаях через параметр Trans_Type обработчиков этих событий передается имя
команды типа TCmdType. Этот параметр может принимать следующие значения:

  • cmdChangeDir;
  • cmdMakeDir;
  • cmdDelete;
  • cmdRemoveDir;
  • cmdList;
  • cmdRename;
  • cmdUpRestore;
  • cmdDownRestore;
  • cmdDownload;
  • cmdUpload;
  • cmdAppend;
  • cmdReInit;
  • cmdAllocate;
  • cmdNList;
  • cmdDoCommand;
  • cmdCurrentDir.

   
Имя метода, к которому относится данное значение, определить нетрудно.

Определение содержимого каталога на удаленном компьютере

   
Если вы уже подключены к серверу, то можете получить список файлов и каталогов текущего каталога при помощи
метода List и обработчика события OnListltem, которое вызывается для каждого элемента списка.
Вы можете обрабатывать каждый элемент каталога в обработчике этого события или включить режим разбора строк
элементов каталога, установив свойство ParseList в True. В последнем случае компонент разберет
полученные данные и поместит имена, размеры файлов, атрибуты, время последнего изменения в составное свойство
FTPDirectoryList. Каждый элемент этого свойства представляет собой объект типа TStringList.
Для указанных элементов списка содержимого каталога эти объекты имеют имена Name[i], Size[i], ModifDate[i], Attribute[i].
Если метод List завершается успешно, то происходит событие OnSuccess, в противном случае
генерируется событие OnFailure. В обоих случаях параметр Trans_Type обработчиков этих событий
получает значение cmdList.

   
Метод NList представляет собой сокращенный вариант команды List и используется для получения
только имен файлов и каталогов.

   
К перечню методов

Изменение текущего каталога на удаленном компьютере

   
Вы можете перейти в другой каталог сервера FTP, вызывая метод ChangeDir с именем нужного вам
каталога, которое передается через параметр DirName. В DirName можно указывать полный путь или
имя каталога относительно текущего, рабочего каталога. Если метод ChangeDir завершается успешно, то
генерируется событие OnSuccess, в противном случае - событие OnFailure. В обоих случаях параметр
Trans_Type обработчиков этих событий получает значение cmdChangeDir.

   
К перечню методов

Загрузка файлов на удаленный компьютер

   
Для загрузки файлов в текущий каталог на удаленном компьютере используется метод Upload. Метод использует
два параметра - имя файла на локальном компьютере и имя, под которым он будет сохраняться на удаленном компьютере:
LocalFile и RemoteFile. Нужно заметить, что для выполнения этой операции у вас должны быть соответствующие
права на удаленном компьютере. Обычно серверы FTP предоставляют такие права в каталоге incoming. В том случае,
если на сервере уже есть файл с тем же именем, с которым вы хотите создать новый, - этот файл будет перезаписан.
Избежать этого эффекта можно, если использовать метод UploadUnique. Единственный параметр LocalFile этого метода
определяет имя файла на локальном компьютере и использует его для создаваемого файла на сервере. Если на сервере
файл с таким именем уже существует, то передаваемый файл будет создан с уникальным именем. Метод UploadRestore хорош тем,
что он позволяет восстановить прерванный в предыдущем сеансе процесс загрузки файла с места, в котором произошел обрыв.
Последний метод из этой серии - это метод UploadAppend. Метод позволяет дописывать содержимое локального
файла в конец файла на сервере, если файл существует. Если на сервере такого файла нет, то файл создается заново.
Два последних метода имеют два параметра LocalFile и RemoteFile.

   
К перечню методов

Загрузка файлов с удаленного компьютера

   
Перед загрузкой файлов с удаленного компьютера имеет смысл вызвать метод List и убедиться, что нужный вам
файл имеется на удаленном компьютере. После этого можно вызвать метод по имени Download, передав ему в
качестве параметров имя загружаемого файла и имя файла и каталога на локальном компьютере: параметры RemoteFile и LocalFile.
Нужно заметить, что загружать файлы из любого каталога FTP-сервера обычно не разрешается. Вы сможете
делать это только из каталогов, открытых для этой операции. Разумеется, если на вашем компьютере уже имеется файл,
совпадающий по имени с загружаемым файлом, то он будет перезаписан. На случай обрыва связи можно использовать
метод DownloadRestore, который "умеет" продолжать загрузку с того места, на котором произошел обрыв связи.
К сожалению, не все серверы FTP поддерживают этот режим передачи файлов.

   
К перечню методов

Создание каталога на удаленном компьютере

   
Для выполнения этой операции у вас должны быть соответствующие права. Обычно на FTP-серверах эти права
выделяются на каталог incoming. Для создания каталога достаточно вызвать метод MakeDirectory,
передав ему в качестве параметра имя того каталога, который вы хотите создать.

   
К перечню методов

Удаление файла или каталога на удаленном компьютере

   
Файл удаляется методом Delete, а для удаления каталога применяется метод RemoveDir. Можно задавать
имя файла или каталога внутри текущего каталога или указывать полный путь и имя удаляемого объекта. И опять вам
понадобятся соответствующие права на удаление каталога или файла. Если они у вас есть, то смело вызывайте метод
RemoveDir или Delete, только не ошибитесь в имени каталога или файла!

   
К перечню методов
   
Мы не упомянули еще методы Allocate, DoCommand, Mode, Reinitialize и Rename. Первый метод выделяет
место на сервере FTP под создаваемый файл. Как правило, этого делать не требуется, но если вам придется
работать с таким сервером, который требует выделения дисковой памяти перед закачкой на него файла, то этот метод
может понадобиться.

   
Метод DoCommand позволяет послать команду серверу FTP, который должен ее выполнить. Имеется в
виду команда операционной системы. Этот метод может вам понадобиться, если для выполнения вашей задачи методов
компонента TNMFTP окажется недостаточно, либо когда вам попадется сервер с нестандартными командами.

   
Метод Rename используется для переименования файла в текущем каталоге на удаленной машине. Первый
параметр FileName задает имя файла, который нужно переименовать, второй параметр - FileName2 - новое имя для заданного файла.

   
Метод Mode задает режим приема/передачи файлов. Используются три режима. Соответственно параметр TheMode может принимать следующие значения:

  • MODE_ASCII - передача текстовых данных;
  • MODE_IMAGE - двоичные данные с 8-ми битовыми байтами;
  • MODE_BYTE - двоичные данные с байтами переменной длины.

   
Метод Reinitialize используется для восстановления прерванного соединения. После этого метода требуется
зарегистрироваться, ввести имя пользователя и пароль.

   
К перечню методов

   
На следующем шаге мы рассмотрим пример, иллюстрирующий использование перечисленных свойств и методов компонента TNMFTP.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий