2016-12-19 3 views
-1

私はcurlを使ってサーバから* .txtファイルをダウンロードしたいと思いますが、残念なことに私はそれをやり方を理解できません。私は初心者ですので、boost :: recursive iteratorをboost ::ファイルシステム、多分私の問題を解決するためのさまざまな方法がありますか?ファイルのリストを取得するCurl

+0

あなたはテキストファイルのすべてのURLを持っていますか? – JoseLinares

+0

あなたの質問は理解できません。自分のサーバーに接続しています。このサーバー上のすべてのtxtファイルをコンピュータ上でダウンロードする必要があります。 – Jack

+0

まず、すべてのファイルのリストを取得して、考えてください – JoseLinares

答えて

0

boost::filesystemは、ローカルマシン上のファイルパスとローカルネットワーク上のUNCパスでのみ動作します。インターネット経由でリモートファイルを反復処理するのに使用することはできません。

ファイルがHTTPサーバー上にある場合、libCURL は、はHTTPプロトコルの一部ではないため、ファイルを直接反復できません。あなたののみファイルが存在する実際のディレクトリのURLを要求したときに、HTTPサーバーがファイルリストを含むHTMLファイル(または他の形式)を提供しているのであれば、特徴!ほとんどのサーバーはindex.htmlindex.phpdefault.aspxなどの特定のファイルにリダイレクトします。ただし、HTTPサーバーがファイルのリスティングを取得できる場合は、そのリスティングデータを手動で取得して解析してURLを特定する必要があります個々のファイルをダウンロードし、必要に応じてダウンロードすることができます。

ファイルがFTPサーバー上にある場合、ディレクトリ一覧はFTPプロトコルの一部であり、libCURLはFTPディレクトリ一覧を取得できます(要求されたURLがバックスラッシュで終わるようにしてlibCURLが認識できるディレクトリが要求されており、特定のファイルではありません)。しかし、あなたはFTPサーバーが送信すると決めるどんなフォーマットでもできるリストデータを解析する責任があります(そして、さまざまなオンラインFTPサーバーによって使用される多くのリスト形式があります)。最新のFTPサーバは、リストデータの解析を容易にするために、MLSDMLSTコマンドをサポートしています(libCURLのCURLOPT_CUSTOMREQUESTオプションを使用してlibCURLに指示してください)。 。また、タイムスタンプ、サイズなどのファイルの詳細ではなくファイル名のみに興味がある場合は、代わりにFTP NLSTコマンドを使用できます(libCURLのCURLOPT_DIRLISTONLYオプションを使用)。

関連する問題