FTPから全ファイル取得するには?


まるお  2004-01-24 20:41:36  No: 111601  IP: [192.*.*.*]

VBで、FtpFindFirstFileとInternetFindNextFileを使って
FTPのファイルを取得する(サブディレクトリ内も含む)
ということをしているのですが、どうもうまくいきません。
再帰使って、サブディレクトリ内のファイルの取得までは
出来たのですが、サブディレクトリから戻ってきたときに
また、最初から検索し始めて、無限ループみたいになって
しまいます。

FTPから、サブディレクトリ内も含むすべてのファイルを
取得するにはどのようにしたら良いでしょうか?
IntenetFindNextFileとかで、検索開始位置を指定できたり
するのでしょうか

編集 削除
たかみちえ  URL  2004-01-24 21:36:31  No: 111602  IP: [192.*.*.*]

検索開始位置は指定できないと思います。ファイルをどういう順番で返してくるかも、サーバーによって違うかもしれませんし。

  たぶん再帰がうまくいってないんじゃないでしょうか?
たとえば、ループ処理をしているのなら、そこからちゃんと抜け切れてないとか、
脱出条件に一見満たされそうで、実は絶対満たされない条件を指定してるとか。
その辺を確認してみたらいいと思います。

  あとは、FtpFindFirstFileあたりで..(親フォルダ)や.(このフォルダ)を処理しちゃってると言うことも考えられますけど…。
それは、ないんですよね?

編集 削除
岡田 之仁  2004-01-24 22:05:06  No: 111603  IP: [192.*.*.*]

ファイル名の取得と、FTPでのファイルのダウンロードを同時に
行っているようであれば、無限ループによくなります。

まず、全てのファイル名を再帰で取得し、それが終わったら
順次、取得したファイル名(パス)で、ダウンロードを行う。

私もこの手で、一度に720ファイル程度を、アップさせたり、
ダウンしたりしています。

以上。

編集 削除