web-dev-qa-db-fra.com

Bibliothèque FTP C ++?

Je cherche une bibliothèque FTP pour C++ pour faire des fonctions ftp de base comme authentifier, changer de répertoire, télécharger des fichiers, etc. mais je n'arrive pas à en trouver un. J'ai cherché sur Google, Sourceforge et CodeProject (enfin, il y a un projet FTP CLIENT complet pour Win95 dans CodeProject, mais je n'ai pas besoin de tout le client ftp ..), mais je n'ai trouvé que des bibliothèques FTP C #.

Pourriez-vous, s'il vous plaît, m'en suggérer une bonne? ou peut-être une alternative?

Merci.

fyi: Microsoft Visual C++ 2008 Express Edition est mon seul IDE, et je préfère la bibliothèque statique précompilée (* .lib) qui peut être liée statiquement (le cas échéant)

21
drowneath

Juste pour informer ceux qui recherchent une bonne bibliothèque/classe FTP C++, j'en ai trouvé une très bonne et facile à utiliser. Son utilisation est tout aussi simple que l'utilisation de la bibliothèque FTP C # qui a déjà été créée par de nombreuses personnes. Si vous n'en avez pas essayé, voici un exemple de code:

nsFTP :: CFTPClient ftpClient; 
 nsFTP :: CLogonInfo logonInfo ("localhost", 21, "anonymous", 
 "[email protected]"); 
 
 // se connecter au serveur 
 
 ftpClient.Login (logonInfo); 
 
 // obtenir la liste des répertoires 
 
 nsFTP: : Liste TSpFTPFileStatusVector; 
 FtpClient.List ("/", liste); 
 
 // liste itérée 
 
 Pour (nsFTP :: TSpFTPFileStatusVector :: itérateur it = list.begin (); 
 it! = list.end (); ++ it) 
 TRACE ("\ n% s", (* it) -> Nom () .c_str ()); 
 
 // effectuer des opérations sur les fichiers 
 
 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");;.____. diplomatique.____. diplomatique ftpClient.Delete("/upload/NewName. txt "); 
 
 // déconnecter 
 
 ftpClient.Logout ();

http://www.codeproject.com/Articles/8667/FTP-Client-Class et profitez-en!

Et il est totalement programmé en C++ avec STL (pas de MFC)

Je suis désolé d'avoir changé la réponse à ce message, car je pense que c'est une meilleure solution, plutôt que d'utiliser celles qui ont écrit en C.

18
drowneath

libftp (bien que ce soit en C)
ftplib (encore une fois, ressemble à C)
libCurl semble avoir des capacités FTP.

Trouver une implémentation C++ peut être difficile, mais encapsuler une bibliothèque C dans des classes C++ ne serait pas difficile si vous avez vraiment besoin d'une interface C++.

Edit: Je viens de voir que vous préférez une bibliothèque précompilée. Si c'est une exigence absolue, vous devrez probablement utiliser une bibliothèque C car les problèmes ABI signifieront plus que probablement qu'une bibliothèque C++ précompilée ne fonctionnera pas pour vous.

9
Glen

Essayez libCurl . Il a des liaisons pour C++ ( cURLpp ) et 30 autres langages.

8
Vijay Mathew

Jetez un œil à Poco Project publié sous la licence du logiciel Boost.

Ils fournissent une implémentation FTP RFC 959. Vous pouvez créer des fichiers de connexion ou de mise à jour, changer de mode, etc. en tant que fonctionnalité de la classe FTPSession .

Cordialement,
Ovanes

P.S. Il s'agit d'une bibliothèque multi-plateforme, qui fonctionne également sur Windows.

2
ovanes

je pense que wininet.h devrait être suffisant pour Visual Studio 2008

0
programmer

QT a une classe QFtp qui peut contenir tout ce dont vous avez besoin.

0
shoosh