投稿日 | : 2005/08/24(Wed) 00:54 |
投稿者 | : Starfish |
Eメール | : |
URL | : |
タイトル | : Re^6: Inetを利用したDIRについて |
StateChangedイベントで、どういうコードを書いているか見えないんですが、
たとえば、以下のようなコードでうまくいかないでしょうか?
ヘルプを参考にしていますが、実際に動かしてみていないので、おかしいところが
あるかもしれませんが。
Dim mBlnFinish As Boolean
Dim mstrData As String
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
mstrData = ""
mBlnFinish = False
.Execute , "DIR"
Do While mBlnFinish = False
DoEvents
Loop
Do While .StillExecuting ' 念のため
DoEvents
Loop
' mstrData にDIRの結果が入っているのでここで処理する
mstrData = ""
mBlnFinish = False
.Execute , "SIZE test.tif"
Do While mBlnFinish = False
DoEvents
Loop
Do While .StillExecuting
DoEvents
Loop
' mstrData にSIZEの結果が入っているのでここで処理する
'接続を抜ける
.Execute , "close"
.Execute , "quit"
End With
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData As Variant ' データを入れる変数。
Dim bDone As Boolean
Select Case State
' ... その他の場合は省略します。
Case icResponseReceived, icResponseCompleted
' 最初のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
DoEvents
mstrData = mstrData & vtData
DoEvents
' 次のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
If Len(vtData) = 0 Then
bDone = True
End If
Loop
If State = icResponseCompleted Then
mBlnFinish = True
End If
End Select
End Sub