Работа с FTP из C# – легко!

Нашел на одном из западных блогов очень удобную библиотеку для работы с фтп.

Чтоб загрузить файл на свой сервер достаточно написать пару строк:

using BytesRoad.Net.Ftp;

… 

string FtpServer = “my.server.ru”;

string Username = “username”;

string Password = “password”;

string RemotePath = “\\folderonserver/”;

 

public void UploadFile(string LocalFile)

{

 // get instance of the FtpClient

 FtpClient client = new FtpClient();

 

 // use passive mode

 client.PassiveMode = true;

 

 client.Connect(Timeout, FtpServer, 21);

 client.Login(Timeout, Username, Password);

 

 // build the target file path

 string target = System.IO.Path.Combine(RemotePath,

 System.IO.Path.GetFileName(LocalFile)).Replace(“\\”, “/”);

 

 // synchronously upload the file

 client.PutFile(Timeout, target, LocalFile);

 

 //Disconnect

 client.Disconnect(Timeout);

}

Обратите внимание, что используется passive mode

Библиотека распространяется по лицензии GPL, то есть бесплатно. Скачать можно отсюда.

  • http://www.livejournal.com/users/xoxerix/ xoxerix@livejournal

    А докачка поддерживается?

  • http://romanpushkin.blogspot.com Roman Pushkin

    Круто, специально бы не стал искать, а тут увидел – и добавил в закладки. Спасибо, будем юзать.

  • http://vitiy.info Victor Laskin

    Насчет докачки – не смотрел честно говоря.

  • http://software-guides.info Softsp

    забыли дописать
    client.DataType = FtpDataType.Binary;

  • http://vitiy.info Victor Laskin

    Будет не лишним. Спасибо.

  • Sapphire Lion

    Вопрос от начинающего программиста.
    А как же ее ставить эту библиотеку BytesRoad.Net.Ftp.

  • http://vitiy.info Victor Laskin

    Просто добавить dll-ку в references проекта.

  • asa

    а что значит пассивный режим?

    и второй вопрос: как с помощью этой библиотеки скачать файл с ftp?

  • Andrey Titov

    Какое должно бить значение переменной Timeout ?

    Мне вибрасивает ошибку: Timeout occurs!

  • http://vitiy.info Victor Laskin

    Давно дело было – но там толи 30 толи 60 секунд наверняка. Уверены, что проблема не в том, что просто сервер недоступен или его адрес не правильно вбит.

  • Andrey Titov

    пробую подключатся к двум разним фтп.
    К первому подключился когда поставил Timeout = 90, к второму немогу подключится. Через тотал командер подключаюся к двум фтп серверам…