VB5.0でFTP転送するには?

解決


オーじろう  2005-01-13 10:49:53  No: 118848  IP: [192.*.*.*]

[開発環境]Windows2000 + VB5.0
[クライアント]Windows2000、WindowsXP Pro
[サーバ]富士通オフコン

FTPにてサーバからCSVファイルのダウンロード機能を作成しています。
shell関数を使い、バッチ処理を実行させてみたものの、エラーの
判定がうまくできず、別の方法を検討しています。

[検討中の方法]
1:wininet
2:BASP21

いろいろ調べていますが、どちらがよい(簡単&わかりやすい)かが
わかりません。できればサンプル等がみたいのですが、検索しても
うまくHITしてくれません。
よろしくお願いします。

編集 削除
ねろ  2005-01-13 11:10:57  No: 118849  IP: [192.*.*.*]

これとか
http://support.microsoft.com/default.aspx?scid=kb;ja;175179#kb1

編集 削除
オーじろう  2005-01-13 11:29:02  No: 118850  IP: [192.*.*.*]

>ねろ様
早速のご回答ありがとうございます。
しかし、「オーじろう」は頭がよくありません。
日本語しかわかりません。ダウンロードしましたが、英語らしきもの
がズラズラと表示され、にっちもさっちもいきません。(涙)

編集 削除
ねろ  2005-01-13 11:49:43  No: 118851  IP: [192.*.*.*]

英語だめですか、コメントだけなんだけど。(^^;
DOSコマンドの実行結果判定のコードを下に書きましたので、
も一度DOSを試されては。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200412/04120036.txt

編集 削除
ひろ  2005-01-13 12:47:48  No: 118852  IP: [192.*.*.*]

ftp ということなので、 コマンドの実行は成功しても、ファイルの転送は失敗していることがありますから、結果をファイルに書き出して調べないといけませんね。

ftp -s:スクリプト >結果ファイル

として、結果ファイルを解析するのが良いかと。

ftp は要求に対する応答を3桁の数字+文字列+改行で返すので、
結果ファイルを1行ずつ読み取って解析すればOK。

で、ftp の応答の3桁の数字の仕様は RFC を読んで下さい。
(実際に手でftpコマンドを動かして調べるのが簡単かも)

編集 削除
オーじろう  2005-01-13 13:24:19  No: 118853  IP: [192.*.*.*]

>ねろ様、ひろ様
参考になりました。ありがとうございました。


※※※追加質問がございます。よろしくお願いします。※※※

ftpで、サーバに無いデータをgetした時、Win2000では何も変化がなく、
(クライアント側にファイルが作成されない)
WinXPだと0KBの空ファイルが作成されてしまいます。
エラーチェックをしようと、FileLen関数でチェックすると、
0KBのものはちゃんと0で判定されるのですが、
実際にあるデータも0と判定されてしまい、
困っています。
ftpを動かす前にテスト的にFileLen関数で同じファイルをチェックすると、
きちんとしたファイルサイズが戻ってきます。
これはなぜなのでしょうか?また、回避方法はありますか?

編集 削除
オーじろう  2005-01-13 16:54:33  No: 118854  IP: [192.*.*.*]

なんとか自力解決しました。

編集 削除