Библиотека С++ FTP?
Я ищу FTP-библиотеку для С++ для выполнения основных функций ftp, таких как аутентификация, изменение каталога, загрузка файлов и т.д., но я не могу найти его.
Я искал Google, Sourceforge и CodeProject (ну, есть один полный проект FTP CLIENT для Win95 в CodeProject, однако мне не нужен весь ftp-клиент..), но я нашел только библиотеки FTP С#.
Не могли бы вы, ребята, предложить мне хороший? или, может быть, альтернатива?
Спасибо.
fyi: Microsoft Visual С++ 2008 Express Edition является моей единственной IDE, и я предпочитаю предварительно скомпилированную статическую библиотеку (*.lib), которая может быть статически связана (если есть)
Ответы
Ответ 1
Просто чтобы сообщить тем, кто ищет хорошую библиотеку/класс FTP С++, я нашел очень хороший и простой в использовании. Использование его так же просто, как использование библиотеки FTP С#, которую уже сделали многие люди. Если вы не пробовали один, вот пример кода:
nsFTP::CFTPClient ftpClient;
nsFTP::CLogonInfo logonInfo("localhost", 21, "anonymous",
"[email protected]");
// 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 и наслаждайтесь!
И он полностью запрограммирован на С++ с STL (без MFC)
Я сожалею, что переключил ответ на этот пост, потому что я думаю, что это лучшее решение, а не использование тех, которые написаны на C.
Ответ 2
libftp (хотя это в C)
ftplib (опять же выглядит C)
libCurl, похоже, имеет возможности FTP.
Поиск реализации на С++ может быть затруднен, но упаковка C-библиотеки в С++-классах не составит труда, если вам действительно нужен интерфейс С++.
Изменить: просто увидел, что вы предпочитаете предварительно скомпилированную библиотеку. Если это абсолютное требование, вам, вероятно, придется использовать библиотеку C, поскольку проблемы с ABI более чем вероятно означают, что предварительно скомпилированная библиотека С++ не будет работать для вас.
Ответ 3
Попробуйте libCurl. Он имеет привязки для С++ (cURLpp) и еще 30 других языков.
Ответ 4
Взгляните на Poco Project, выпущенный под лицензией программного обеспечения Boost.
Они обеспечивают реализацию FTP RFC 959. Вы можете делать файлы регистрации или обновления, изменять режимы и т.д. Как функциональные возможности класс FTPSession.
С уважением,
Ованес
P.S. Это многоплатформенная библиотека, которая также работает и с Windows.
Ответ 5
QT имеет класс QFtp, который может содержать все, что вам нужно.
Ответ 6
Я думаю, что wininet.h должно быть достаточно для визуальной студии 2008
Ответ 7
Попробуйте Ultimate TCP/IP, который поддерживает FTP (и вы можете просто компилировать часть FTP). Это отличная библиотека (и она бесплатна).
http://www.codeproject.com/KB/MFC/UltimateTCPIP.aspx
Ответ 8
Просто используйте стандартный "FtpWebRequest":
http://msdn.microsoft.com/en-us/library/ms229711.aspx