VBで、FtpFindFirstFileとInternetFindNextFileを使って
FTPのファイルを取得する(サブディレクトリ内も含む)
ということをしているのですが、どうもうまくいきません。
再帰使って、サブディレクトリ内のファイルの取得までは
出来たのですが、サブディレクトリから戻ってきたときに
また、最初から検索し始めて、無限ループみたいになって
しまいます。
FTPから、サブディレクトリ内も含むすべてのファイルを
取得するにはどのようにしたら良いでしょうか?
IntenetFindNextFileとかで、検索開始位置を指定できたり
するのでしょうか
検索開始位置は指定できないと思います。ファイルをどういう順番で返してくるかも、サーバーによって違うかもしれませんし。
たぶん再帰がうまくいってないんじゃないでしょうか?
たとえば、ループ処理をしているのなら、そこからちゃんと抜け切れてないとか、
脱出条件に一見満たされそうで、実は絶対満たされない条件を指定してるとか。
その辺を確認してみたらいいと思います。
あとは、FtpFindFirstFileあたりで..(親フォルダ)や.(このフォルダ)を処理しちゃってると言うことも考えられますけど…。
それは、ないんですよね?
ファイル名の取得と、FTPでのファイルのダウンロードを同時に
行っているようであれば、無限ループによくなります。
まず、全てのファイル名を再帰で取得し、それが終わったら
順次、取得したファイル名(パス)で、ダウンロードを行う。
私もこの手で、一度に720ファイル程度を、アップさせたり、
ダウンしたりしています。
以上。