Я сомневаюсь, что есть общедоступная библиотека, которая уже делает это за вас. Кроме того, вопросы, требующие рекомендации для библиотеки программного обеспечения, не относятся к теме. Поэтому я вместо этого опишу способ, которым вы могли бы реализовать такую функцию самостоятельно:
FTP на самом деле не имеет случайного доступа. Наиболее вероятно, что вы могли бы определить размер файла, используя команду SIZE (если поддерживается), установите смещение в конце файла с помощью команды REST, а затем прочитайте до конца файла с помощью RETR. В конце данных есть центральный каталог, который содержит центральный заголовок каталога для каждого файла, который затем содержит смещение, где расположен каждый локальный заголовок файла, и размер сжатых данных. Как только вы узнаете, какие файлы являются новыми, и где они начинаются, вы можете установить это смещение с помощью REST и использовать RETR для запуска загрузки. Поскольку FTP не имеет команды для чтения только определенного количества байтов из файла, вы должны использовать ABOR, чтобы остановить загрузку после получения достаточного количества данных. Затем вы можете извлечь сжатые данные из этой загрузки и распаковать ее, чтобы получить нужный файл. Для получения дополнительной информации см. ZIP file format - Structure.