Подтвердить что ты не робот

Библиотека С++ FTP?

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

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

Спасибо.

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

4b9b3361

Ответ 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