После успешной регистрации режим передачи файлов устанавливается в значение binary, что необходимо для получения точного зеркального отображения удаленного узла, и определяется режим отображения символов диеза, если он был затребован.
Инициализация зеркального отображения. Если вся подготовка прошла успешно, начинается процесс зеркального отображения путем вызова внутренней подпрограммы do_mirror() с указанным именем пути. После завершения работы подпрограммы do_mirror( ) корректно закрывается соединение путем вызова метода quit() объекта FTP, и выполнение программы прекращается.
Подпрограмма do_mirror(). Данная подпрограмма является основной процедурой зеркального отображения файла или каталога. Сразу после ее вызова неизвестно, указывает ли путь доступа, затребованный пользователем, на файл или каталог, поэтому вначале происходит вызов вспомогательной подпрограммы для получения этих данных. Получив в качестве параметра путь доступа на FTP-сервере, подпрограмма find_type() возвращает односимвольный код, обозначающий тип объекта, на который указывает путь доступа: «-», если это—обычный файл, или “d”, если это — каталог. После определения типа объекта весь путь доступа разбивается на первый компонент с обозначением каталога (префикс) и последний компонент (такой компонент называется “лист-объектом” и может представлять файл или каталог). Вызывается метод cwd () объекта FTP для перехода в родительский каталог файла или каталога, для которого должно быть выполнено зеркальное отображение. Если подпрограмма find_type () сообщила, что путь доступа указывает на файл, вызывается подпрограмма get_file () для зеркального отображения файла. В ином случае вызывается подпрограмма get_dir().