Во-первых, FTP и SFTP - два совершенно не связанных между собой протокола. Поэтому не имеет смысла спрашивать оба в одном вопросе. В любом случае, ответ на самом деле практически одинаков для обоих.
Ни протокол FTP, ни протокол SFTP не имеют какого-либо механизма для уведомления клиента об изменениях.
Они даже не иметь возможность сообщать об изменениях по запросу.
Все, что вы можете сделать, это периодически перечислять все файлы на сервере и сравнивать список с предыдущими результатами.
С помощью FTP это может быть слегка оптимизирован, запрашивая список, отсортированный по меткам времени. Таким образом, особенно если в папке много файлов, вы можете прервать загрузку списка, как только получите все новые файлы. Хотя запрос отсортированного списка является нестандартной функцией, хотя и широко поддерживается. См. Как получить файлы в папке FTP, отсортированные по времени изменения .
Если бы вы управляли сервером (машиной, а не программным обеспечением), вы могли бы создать там службу, которая будет предоставить необходимую информацию Но это не имеет ничего общего с SFTP / FTP. И поскольку вы не управляете сервером, это также не имеет значения.
Аналогичный недавний вопрос: Добавочное сканирование новых / измененных файлов FTP с помощью C#