投稿日 | : 2005/08/12(Fri) 09:32 |
投稿者 | : 叶 |
Eメール | : |
URL | : |
タイトル | : Inetを利用したDIRについて |
はじめまして。
タイトルの件についてご助言を下さい。
【やりたい事】
FTPサイトへ接続し、ディレクトリ移動を行った後に、
ローカルにあるファイルをアップロードする。
正常にアップロードされたか確認するために、DIRでファイル名と
SIZEでファイルサイズを取得して、ローカルファイルと比較。
一致すれば正常にアップロード完了と判断。
【起きている現象】
・DIR部分でStateChangedに12が戻ってこない為
待機ループで無限ループが発生してしまう。
【参考情報】
・ただし、DIRコマンド箇所にて一度ブレイクを挟むと
正常に動作する。
・SIZE部分はStateChangedに12は戻ってくるが、
正常にサイズを取得できない。
ただし、これもSIZEコマンド箇所にてブレイクを挟むと
正常にサイズを取得する事が可能。
・アップロード処理やディレクトリ移動処理など行わずに
DIRとSIZEだけを実行した場合は、特にブレイクを打たずとも
正常に動作。
【ソース】
Private Sub Command1_Click()
Dim strData As String
With Inet1
.URL = "ftp://test"
.AccessType = icFTP
'仮想ディレクトリに移動
.Execute , "CD webTEST"
Do While .StillExecuting = True
DoEvents
Loop
'ファイルのアップロード
.Execute , "PUT c:\TEST\test.tif test.tif"
Do While .StillExecuting = True
DoEvents
Loop
.Execute , "DIR" ←ここで一旦ブレイクすると正常に動作
Do While .StillExecuting
DoEvents
Loop
strData = .GetChunk(1024, icString)
.Execute , "SIZE test.tif" ←ここで一旦ブレイクすると正常に動作
Do While .StillExecuting
DoEvents
Loop
strData = .GetChunk(1024, icString)
'接続を抜ける
.Execute , "close"
.Execute , "quit"
End With
End Sub
長くなりまして、誠に申し訳ありませんが
ご助言頂けますよう、よろしくお願い致します。