как программировать для интеграции с filezilla в C #. [sftp] - PullRequest
1 голос
/ 02 марта 2011

Я хотел бы интегрировать FileZilla с моим приложением, написанным на C #. пожалуйста, кто-нибудь покажет мне пример кода или веб-сайт, который показывает пример кода.

хотя я нашел статью в сети, и эта статья говорила msgstr "приложение интегрировано с FileZilla так медленно". но я не знаю, выдержу ли я так поздно или нет. так что я хотел бы бросить вызов.

Ответы [ 4 ]

3 голосов
/ 02 марта 2011

Для поддержки 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)

2 голосов
/ 02 марта 2011

Filezilla - клиент FTP с графическим интерфейсом, его нельзя использовать для «сценария» операций SFTP (он принимает только очень ограниченный набор аргументов командной строки) .

Вы должны искать сторонний компонент C # или написать его самостоятельно (не рекомендуется) для выполнения этой работы.

0 голосов
/ 02 марта 2011

Я рекомендую использовать SharpSSH , если вам нужно отправить файлы через SSH / SFTP в вашем приложении.

0 голосов
/ 02 марта 2011

Для поддержки FTP или SFTP из вашего приложения на C # вы можете использовать внешнюю библиотеку, такую ​​как Chilkat http://www.chilkatsoft.com/ftp-2-dotnet.asp. Я использую ее, и она прекрасно работает!

Теоретически, вы могли бы также реализовать протокол FTP с использованием сокетных соединений самостоятельно, но вы должны избавить себя от этой проблемы -> не изобретать велосипед ...

...