web-dev-qa-db-ja.com

C ++ FTPライブラリ?

認証、ディレクトリの変更、ファイルのアップロードなどの基本的なftp機能を実行するためのC++のFTPライブラリを探していますが、見つからないようです。私はGoogle、Sourceforge、CodeProjectを検索しました(まあ、CodeProjectにはWin95用の完全なFTP CLIENTプロジェクトが1つありますが、FTPクライアント全体を必要とするわけではありません)。C#FTPライブラリしか見つかりませんでした。

いいものを教えてくれませんか?または多分代わりか。

ありがとう。

fyi:Microsoft Visual C++ 2008 Express Editionは私の唯一のIDEであり、(もしあれば)静的にリンクできるプリコンパイルされた静的ライブラリ(* .lib)を好みます

21
drowneath

良いC++ FTPライブラリ/クラスを探している人たちに知らせるために、私は非常に良い使いやすいライブラリを見つけました。これを使用するのは、すでに多くの人々が作成したC#FTPライブラリを使用するのと同じくらい簡単です。まだ試していない場合のコード例は次のとおりです。

nsFTP :: CFTPClient ftpClient; 
 nsFTP :: CLogonInfo logonInfo( "localhost"、21、 "anonymous"、
 "[email protected]"); 
 
 //サーバーに接続します
 
 ftpClient.Login(logonInfo); 
 
 //ディレクトリリストを取得します
 
 nsFTP: :TSpFTPFileStatusVectorリスト; 
 ftpClient.List( "/"、list); 
 
 //反復リスト
 
 for(nsFTP :: TSpFTPFileStatusVector :: iterator it = list.begin(); 
 it!= list.end(); ++ it)
 TRACE( "\ n%s"、(* it)->名前().c_str()); 
 
 //ファイル操作を行う
 
 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 "); 
 
 //切断
 
 ftpClient.Logout();

http://www.codeproject.com/Articles/8667/FTP-Client-Class とお楽しみください!

そして、それは完全にSTL(MFCなし)でC++でプログラムされています

Cで書かれたものを使用するよりも、これがより良い解決策であると思うので、この投稿への回答を切り替えて申し訳ありません。

18
drowneath

libftp (Cで記述されていますが)
ftplib (ここでもCのように見えます)
libCurl にはFTP機能があるようです。

C++実装を見つけるのは難しいかもしれませんが、C++クラスでCライブラリをラップすることは、本当にC++インターフェイスが必要な場合には難しくありません。

編集:コンパイル済みのライブラリを好むことを確認しました。これが絶対的な要件である場合、ABIの問題はおそらくコンパイル済みのC++ライブラリが機能しないことを意味するため、おそらくCライブラリを使用する必要があります。

9
Glen

libCurl を試してください。 C++( cURLpp )および30の他の言語のバインディングがあります。

8
Vijay Mathew

Boostソフトウェアライセンスの下でリリースされた Poco Project をご覧ください。

FTP RFC 959実装を提供します。 FTPSession クラスの機能として、ファイルのログインまたはアップロード、モードの変更などを行うことができます。

よろしく、
オバネス

追伸これは、Windowsでも動作するマルチプラットフォームライブラリです。

2
ovanes

wininet.hはVisual Studio 2008には十分だと思います

0
programmer

QTには QFtp クラスがあり、必要なものがすべて含まれている場合があります。

0
shoosh