Для поддержки FTP / SFTP или любого другого протокола в C # вы можете сделать это 3 способами:
1.НОВЫЙ ПРОЦЕСС ПРИЛОЖЕНИЯ - Запустите приложение, которое выполняет FTP-связь в отдельном процессе, и сможете контролировать, какой файл загрузить, где его сохранить и сообщить приложению о завершении по окончании загрузки.Таким образом, вы можете использовать FileZilla, только если он позволяет передавать определенные параметры в командной строке, такие как URI ресурса, который вы хотите передать через FTP / SFTP, и путь, куда файл должен быть сохранен.И как я вижу ЗДЕСЬ , это может сработать.
Чтобы запустить процесс и передать ему аргументы командной строки в C #, вы должны сделать что-то вроде этого:
static void StartNewProcess(string app, string args)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = app; //full app path
startInfo.Arguments = args; //command line arguments
startInfo.CreateNoWindow = true; //dont create app window
startInfo.WindowStyle = ProcessWindowStyle.Hidden; //hide app from taskbar
Process.Start(startInfo);
}
Теперь вы можете запустить приложение FileZila, передать ему аргументы, содержащие URL-адрес файла, и позволить ему выполнить свою работу ... Но вы не можете знать, сколько времени займет загрузка файла, когда загрузка закончится, вам нужно войти в систему, чтобы получитьэто ...
2.БИБЛИОТЕКА СУЩЕСТВУЮЩИХ КЛАССОВ - Включите библиотеку классов, написанную кем-то другим, которая выполняет эту работу.Таким образом, вы полностью контролируете процесс.И, как многие другие предположили, это будет идеальный способ для вас.Многие ответы здесь содержат хорошие библиотеки классов, которые вы можете использовать и довольны результатами.
3.БИБЛИОТЕКА ДОМАШНЕГО КЛАССА - Откройте RFC 959 , прочитайте все и напишите свой код ... (теперь 2. звучит лучше, не так ли?: D)