いつも参考にさせていただいてます。
早速ですが質問です。
MFCのFTPを使って中間サーバーからデータを取得するプログラムを作成しています。
各クライアントから定期的に中間サーバーにデータが送られてきますので、
これらのファイルをCFtpFileFind::FindFile&FindNextFileで取得したファイル名を
使用してCInternetFile::Readで直接読込みをしようとしているのですが
2つめ以降のファイルを読み込んでくれません。
Helpには 「OpenFile を呼び出して Close を呼び出すまでは、
アプリケーションが呼び出せるのは CInternetFile::Read、CInternetFile::Write、
Close、または CFtpFileFind::FindFile だけです。」とかかれているのですが、
1度の接続では1件のファイルの読込みまたは書込みしか出来ないのでしょうか?
Closeを呼び出すとセッションが切断されてしまうのでファイルを1件読み込む毎に
接続、切断を繰り返さなければならないのでしょうか。
諸事情により全ファイルをローカルに取込み、ローカルのファイルを読込んで処理、
作業後に消すということは予定していませんのでFTP接続の中で作業したいのですが、
対象ファイルが300ほどありますので、接続切断を300回は時間が掛かりすぎるので
す。
なにかアドヴァイスをいただけましたら幸いです。
よろしくお願いします。
P.S.長文にお付き合いいただきましてありがとうございます。
すみません。
開発環境の情報を書き忘れてました。
開発環境は、Windows2000Pro、VC6.0、MFC使用 です。
自己レスです。
FTP接続後、ファイル検索→ファイルを1件取込み→取込んだファイルの読込み、
の繰り返しでTempファイルを1ファイルだけカレントディレクトリに作成しますが、
何とか回避することが出来ました。
何度も接続というのは、回線に負担をかけたようで、いつも、150回目くらいで、
接続失敗になってしまいました。(この回数の理由は不明)
とりあえず全ファイルを取込んでとも思ったのですが、対象ディレクトリが複数あり、
ファイル名が重複している場合がありましたので、これも断念しました。
なにはともあれ、無事に回避できました。