当前位置:编程学习 > VB >>

VB inet控件下载ftp,每次下下来的都是0db的空文件

Private Sub Command1_Click()
Inet1.Protocol = icFTP
Inet1.URL = "ftp://"
Inet1.RemotePort = 21
Inet1.UserName = "a**"
Inet1.Password = "**"

Label3.Caption = "正在下载...." '格式: inet1.execute , "get 远程文件 本地文件",注意空格
Inet1.Execute , "GET /d:/test/temp.txt C:\mkk.txt"
Do While Inet1.StillExecuting
DoEvents
Loop
Label3.Caption = "下载成功"
Inet1.Cancel
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
  Case 0
  Text1.Text = "无状态"
  Case 1
  Text1.Text = "正在查询所指定的主机的IP地址"
  Case 2
  Text1.Text = "成功地找到所指定的主机的IP地址"
  Case 3
  Text1.Text = "正在与主机连接"
  Case 4
  Text1.Text = "已与主机连接成功"
  Case 5
  Text1.Text = "正在向主机发送请求"
  Case 6
  Text1.Text = "发送请求已成功"
  Case 7
  Text1.Text = "在接收主机的响应"
  Case 8
  Text1.Text = "成功地接收到主机的响应"
  Case 9
  Text1.Text = "正在解除与主机的连接"
  Case 10
  Text1.Text = "已成功地与主机解除了连接"
  Case 11
  Text1.Text = "与主机通讯时出现了错误"
  Case 12
  Text1.Text = "请求已经完成,并且所有数据均已接收到"
  End Select

End Sub
VERSION 5.00
Object = "{48E59290-9880-11CF-9754-00AA00C00908}#1.0#0"; "MSINET.OCX"
Begin VB.Form Form1
   BorderStyle     =   1  'Fixed Single
   ClientHeight    =   3060
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4035
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   3060
   ScaleWidth      =   4035
   StartUpPosition =   3  '窗口缺省
   Begin VB.CommandButton Command1
      Caption         =   "下载"
      Height          =   495
      Left            =   1440
      TabIndex        =   0
      Top             =   1320
      Width           =   1215
   End
   Begin InetCtlsObjects.Inet Inet1
      Left            =   -15
      Top             =   -15
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim ExeStr As String
Dim Done As Boolean
Private Sub cmd(cmdstr As String)
    Do
        If Inet1.StillExecuting = False Then Exit Do
    Loop
    ExeStr = cmdstr
    Done = False
    Debug.Print ExeStr; "="
    Inet1.Execute , ExeStr
    Do
        DoEvents
        If Done Then Exit Do
    Loop
End Sub
Public Sub ReadNewDat(dat As String)
    Inet1.URL = "ftp://192.168.1.123"
    Inet1.UserName = "username"
    Inet1.Password = "password"

    'cmd "PWD"
    'cmd "CD /data"
    'cmd "DIR"

    cmd "GET " + vox + ".dat " + App.Path + "\" + dat + ".dat"

    cmd "QUIT"
End Sub

Private Sub Command1_Click()
    Command1.Enabled = False
    ReadNewDat ("20111109")
    Command1.Enabled = True
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim intFile As Integer
Dim vtData() As Byte
Dim str As String
'On Error GoTo ISCerr
    Debug.Print "State="; State,
    Select Case State
    Case 0
        Debug.Print "icNone"
    Case 1
        Debug.Print "icHostResolvingHost"
    Case 2
        Debug.Print "icHostResolved"
    Case 3
        Debug.Print "icConnecting"
    Case 4
        Debug.Print "icConnected"
    Case 5
        Debug.Print "icRequesting"
    Case 6
        Debug.Print "icRequestSent"
    Case 7
        Debug.Print "icReceivingResponse"
    Case 8
        Debug.Print "icResponseReceived"
        If Left(ExeStr, 2) = "CD" Then Done = True
    Case 9
        Debug.Print "icDisconnecting"
    Case 10
        Debug.Print "icDisconnected"
        Done = True
    Case 11
        Debug.Print "icError of [" + ExeStr + "]="; Inet1.ResponseInfo
        Done = True
    Case 12
        Debug.Print "icResponseCompleted----------------"
        Do
            str = Inet1.GetChunk(1024, icString)
            If LenB(str) = 0 Then Exit Do
            Debug.Print str
        Loop
        Done = True
    End Select
    Exit Sub
ISCerr:
    Resume Next
End Sub
补充:VB ,  网络编程
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,