Inetコントロール

解決


かお  2004-04-06 20:27:26  No: 82887  IP: [192.*.*.*]

InetコントロールでFTPサーバー上のファイルを取得する
プログラムを作成しているのですが
自PCですとうまく取得するのですが他のPCだと取得できません。
OSは自他共にXPです。
ソースは下記の通りです。どこかおかしいのでしょうか?
よろしくお願いします。

With Frm.Inet1
    .URL = Sys_FTPServer
    .Password = Sys_PassWord
    .UserName = Sys_ID
    .Protocol = icFTP
    .Execute , "CD /"
    Do While .StillExecuting = True
        DoEvents
    Loop
    .Execute , "DIR "
    Do While .StillExecuting = True
        DoEvents
    Loop
    .Execute , "GET " & FileName & " " & App.Path & "C:\result.txt"
    Do While .StillExecuting = True
        DoEvents
    Loop
End With

編集 削除
ねろ  2004-04-06 21:03:46  No: 82888  IP: [192.*.*.*]

Inetは使ったことが無いのでわかりませんが、
> .Execute , "GET " & FileName & " " & App.Path & "C:\result.txt"
ここのところちょっと変ですよ。
 .Execute , "GET " & FileName & " " & App.Path & "\result.txt"
こうでは、それとも単なる写し間違いですか。

編集 削除
かお  2004-04-07 08:15:01  No: 82889  IP: [192.*.*.*]

ごめんなさい。間違いでした。
ただしくはこうです。

 .Execute , "GET " & FileName & " " & App.Path & "\result.txt"

編集 削除
ねろ  2004-04-07 11:40:48  No: 82890  IP: [192.*.*.*]

>自PCですとうまく取得するのですが他のPCだと取得できません。
と言うことは、VBのコード自体に不具合は無いのでは。
 .Execute , "CD /"  の時に
「リモートホストに接続で出来ません」などとワーニングが出るのでしょうか?
PCのネットワーク等の設定の相違ではありませんか。

編集 削除
かお  2004-04-07 13:38:54  No: 82891  IP: [192.*.*.*]

他PCの時に「リモートホストに接続で出来ません」等の
メッセージは出ていません。
GETした後、ローカルのファイルを開こうとすると
ファイルがありませんとエラーが出るのです。
これはGETがうまくいっていないということですよねぇ。

ちなみに自PCと他PCは同じLAN上にあり
他のアプリなどでそのFTPサーバー上の
ファイル処理は出来ています。(PUTの処理等)

編集 削除
ねろ  2004-04-07 17:25:21  No: 82892  IP: [192.*.*.*]

>GETした後、ローカルのファイルを開こうとすると
>ファイルがありませんとエラーが出るのです。
何でローカルのファイルを開こうとしているのでしょうか?
エクスプローラーで見るとファイルはあるんでしょうか。

編集 削除
かお  2004-04-07 18:07:43  No: 82893  IP: [192.*.*.*]

ねろ様、度々すみません。

>何でローカルのファイルを開こうとしているのでしょうか?
何でローカルで開くかというとそのGETしたファイルのデータで
処理を行うからなのです。その処理時間が結構時間がかかるので、
一度ローカルに落としたものを利用しようとしているのです。

>エクスプローラーで見るとファイルはあるんでしょうか。
ファイルありません。

編集 削除
長谷川  2004-04-07 18:34:04  No: 82894  IP: [192.*.*.*]

ファイルがないということは、
1.Getがうまくいっていない
2.実は別の場所にダウンロードされている
のどちらかですかね?

2のほうはexeのある場所にGetしているようなので、
可能性はないと思いますが。

確認しているPCの構成に相違点はありませんか?
ディレクトリ構成、ネットワーク設定などなど
また確認時はexeで確認しているのでしょうか?
それともVB上で実行しているのでしょうか?

編集 削除
かお  2004-04-07 18:53:46  No: 82895  IP: [192.*.*.*]

>確認しているPCの構成に相違点はありませんか?
>ディレクトリ構成、ネットワーク設定などなど

構成の相違点と言えばネットワーク設定は同じLANに
あるので同じです。
ディレクトリはApp.Pathの位置が
自PCはCドライブのルート上のフォルダの中
他PCはProgram Filesの中のフォルダのなかです。

確認時はexeでもエクスプローラーでも確認しています。
やはりこれはGETがうまくいっていないということですよねぇ。

編集 削除
長谷川  2004-04-07 20:18:39  No: 82896  IP: [192.*.*.*]

他PCのほうでは"Program Files"とのことなので、
パスにスペースが入っているせいではないかと思います。

 .Execute , "GET " & FileName & " """ & App.Path & "\result.txt"""

などと保存先のパスをダブルコーテーションで括ったほうがよいです。

編集 削除
かお  2004-04-07 21:41:11  No: 82897  IP: [192.*.*.*]

早速試して実行してみたところうまくいきました。
GET以前の基本的なところのようですね。

とても勉強になりました。

ねろ様、長谷川様本当にありがとうございました。

編集 削除