Удаление всех файлов в копии на сервере

udalenie vseh fajlov v kopii na servere Сценарии на стороне клиента

Как и операция загрузки каталога, выгрузка на сервер начинается с запроса необходимости удаления всех файлов в целевом каталоге сервера перед копированием туда новых файлов. Параметр cleanall полезно использовать, если какие-то файлы были удалены в локальной копии каталога у клиента — отсутствующие файлы останутся в копии на сервере, если сначала не удалить там все файлы.

Чтобы реализовать зачистку сервера, этот сценарий просто получает список всех файлов в каталоге на сервере с помощью метода nlst объекта FTP и поочередно удаляет их с помощью метода delete объекта FTP. При наличии права на удаление каталог будет очищен (права доступа к файлам зависят от учетной записи, под которой производится регистрация при подключении к серверу). К моменту выполнения операции удаления файлов мы уже находимся в целевом каталоге на сервере, поэтому в именах файлов не требуется указывать путь к каталогу. Обратите внимание, что на некоторых серверах метод nlst может возбуждать исключение, если удаленный каталог пуст — мы не перехватываем это исключение здесь, но можем просто не указывать необходимость очистки при второй попытке, если возникла такая ошибка. Мы обрабатываем исключения, связанные с удалением файлов, потому что некоторые серверы могут возвращать в списке файлов имена каталогов «.» и «..».

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий