VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 利用Internet传输控件来使用FTP
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:11740, 日期:2003-08-29
    微软提供了Internet传输控件(Internet Transfer Control),它能够让你使用Visual Basic 6的应用程序使用FTP来传输文件。要使用这个控件,你需要将微软的Internet传输控件添加到自己的项目里,然后将这个控件加到表单里。

现在是该设置控件属性的时候了:

将URL属性设置为FTP服务器的URL。
将用户名(Username)和密码(Password)的属性设置为合法的用户ID和密码,这也是FTP所要用到的。(如果你将这些属性留成空白,那么用户名属性就会被设置为匿名(anonymous),而密码属性会被设置为一个缺省的密码。)
将协议(Protocol)属性设置为icFTP,这是访问FTP所需要的。设置一下RequestTimeout,以防止在服务器没有相应的时候控件挂起。例如:
With Inet1
    .URL = "ftp://myftpserver"
    .UserName = "myusername"
    .Password = "mypassword"
    .Protocol = icFTP
    .RequestTimeout = 120
End With

要进行GET或者PUT操作,就要调用Execute方法。第一个自变量是可选的,它允许你指定URL。第二个自变量能够让你指定要进行的操作。当GET操作被调用的时候,你必须传递被请求文件的名称和要创建的本地文件名。当PUT操作被调用的时候,要被上传的文件就会被指定,然后就在FTP服务器上创建这个文件。

Call Inet1.Execute(, "GET ftpfile.txt c:\temp\ftpfile.txt")
Call Inet1.Execute(, "PUT c:\temp\ftpfile.txt ftpfile2.txt")

Execute方法是异步工作的,所以你可以使用StateChanged事件来监控这项操作的进展情况。State自变量会是一个StateConstant。你可以使用对象浏览器(Object Browser)或者在线帮助(Online Help)来查看State所有合法的值。

Private Sub Inet1_StateChanged(ByValState As Integer)
    Debug.PrintState
End Sub

如果State等于icError,那么你可以通过ResponseCode和ResponseInfo属性来获取错误信息。

Debug.Print Inet1.ResponseCode
Debug.Print Inet1.ResponseInfo