Библиотека FTP на C++? [закрытый]

Я ищу FTP-библиотеку для C++ для выполнения основных функций ftp, таких как аутентификация, изменение каталога, загрузка файлов и т. д. но, кажется, я не могу его найти. Я искал через Google, Sourceforge и CodeProject (ну, есть один полный проект FTP-клиента для Win95 в CodeProject, однако мне не нужен весь ftp-клиент..), но я нашел только FTP-библиотеки C#.

не могли бы вы, ребята, предложить мне хороший? или, может быть альтернатива?

спасибо.

fyi: Microsoft Visual C++ 2008 Express Edition - моя единственная IDE, и я предпочитаю предварительно скомпилированную статическую библиотеку (*.lib), который может быть статически связан (если есть)

8 ответов


просто сообщить тем, кто ищет хорошую библиотеку/класс FTP C++, я нашел очень хороший и простой в использовании. Использовать его так же просто, как использовать FTP-библиотеку C#, которая уже была сделана многими людьми. Если вы еще не пробовали, вот пример кода:

nsFTP::CFTPClient ftpClient;
nsFTP::CLogonInfo logonInfo("localhost", 21, "anonymous", 
                                      "anonymous@user.com");

// connect to server

ftpClient.Login(logonInfo);

// get directory listing

nsFTP::TSpFTPFileStatusVector list;
ftpClient.List("/", list);

// iterate listing

for( nsFTP::TSpFTPFileStatusVector::iterator it=list.begin(); 
                                         it!=list.end(); ++it )
    TRACE("\n%s", (*it)->Name().c_str());

// do file operations

ftpClient.DownloadFile("/pub/test.txt", "c:\temp\test.txt");

ftpClient.UploadFile("c:\temp\test.txt", "/upload/test.txt");

ftpClient.RenameFile("/upload/test.txt", "/upload/NewName.txt");

ftpClient.Delete("/upload/NewName.txt");

// disconnect

ftpClient.Logout();

http://www.codeproject.com/Articles/8667/FTP-Client-Class и наслаждайтесь!

и он полностью запрограммирован на C++ с STL (без MFC)

извините за переключение ответ на этот пост, потому что я думаю, что это лучшее решение, а не использовать те, что написаны в с.


libftp (хотя это в C)
ftplib (опять же, похоже на C)
libcurl о Кажется, есть возможности FTP.

найти реализацию C++ может быть сложно, но упаковка библиотеки C в классы C++ не будет сложной, если вам действительно нужен интерфейс c++.

Edit: просто увидел, что вы предпочитаете предварительно скомпилированную библиотеку. Если это абсолютное требование, вам, вероятно, придется использовать библиотеку C, поскольку проблемы ABI будут скорее всего, это означает, что предварительно скомпилированная библиотека C++ не будет работать для вас.


попробовать libcurl о. Он имеет привязки для C++ (cURLpp) и 30 других языков.


посмотри Проект Poco выпущено под лицензией Boost software.

Они обеспечивают реализацию FTP RFC 959. Вы можете войти в систему или updload файлы, менять режимы и т. д. как функциональность FTPSession класса.

с уважением,
Ованес!--3-->

P. S. Это является мульти-платформенных Либ, который работает также на Windows.


QT имеет помощью qftp класс, который может содержать все, что вам нужно.


Я думаю, wininet.h должно быть достаточно для visual studio 2008


попробуйте Ultimate TCP / IP, который поддерживает FTP (и вы можете просто скомпилировать в FTP-части). Это отличная библиотека (и она бесплатна).

http://www.codeproject.com/KB/MFC/UltimateTCPIP.aspx


просто используйте стандартный "FtpWebRequest":

http://msdn.microsoft.com/en-us/library/ms229711.aspx