使用FTP下载文件
2010-03-26 20:06
204 查看
FTP下载文件:创建FTP组件(get)
1、用一个InternetOpen调用设置环境。
2、调用InternetConnect 函数与主机连接。
3、调用FtpGetFile 达到文件。
4、关闭第1、2步创建的句柄,用InternetCloseHandle 函数。
InternetOpen参数:
第一个参数:用来指定调用Internet 函数的应用程序或实体(可以任意设定)。
第二个参数:指定我们是直接与某一主机相连还是使用代理服务器相连。
如果传递值1 (INTERNET_OPEN_TYPE_DIRECT)。就直接与主机连接。
如果传递3 (INTERNET_OPEN_TYPE_PROXY)3,就通过代理服务器。
如果传递0 (INTERNET_OPEN_TYPE_PRECONFIG),连接时就要基于
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings下的注册表数值ProxyEnable、ProxyServer和 ProxyOverride 。
我们可以使用第三参数和第四个参数,而不是注册设置来提供代理服务器和不使用代理服务器的IP地址和名字。列出代理的基本格式是rotocol=protocol://proxy_name:access_port?。例如,要指定Proxy1 上的端口21为代理服务器,用Ftp=ftp://Proxy1:21?作为sProxyName。要饶过以ov? 开始的任何主机,sProxyBypass 字符串应为ov*? 。
第五个参数:用来显示影响函数结果的不同选择。在我们的例子中,我们传递0。所以,不使用代理而打开一个Internet session 时,我们的调用是这样的:
lngINet = InternetOpen(“FTP Control”, 1, vbNullString, vbNullString, 0) // vbNullString,NULL
如果函数调用失败,lngINet 为NULL。不然,lngINet 就保存在下一步中将要传递给InternetConnect函数的句柄的值。
InternetConnect参数:
第一个参数:是InternetOpen 调用返回的句柄值。
第二个参数:是我们即将连接的FTP服务器的IP地址或主机名。
第三个参数:指示与哪一个端口连接。0(INTERNET_DEFAULT_FTP_PORT),它指示的是
默认的端口21。
第四,五个参数:分别传递用户名和口令。若为Null (vbNullString),则使用预设的帐号和密码,以FTP服务为例,若lpszUsername及lpszPassword为Null,代表以“anonymous”(匿名)为其登录帐号及“使用者的e-mail帐号”为其登陆密码。
第六个参数:用来指示使用的服务类型。1 (INTERNET_SERVICE_FTP),表示FTP服务。
第七个参数:传递 x8000000,连接将使用被动FTP语义。传递0来使用非被动语义。
第八个参数:当使用回叫信号时,用来识别应用程序的前后关系。不使用则为0。
现在使用匿名的电子邮件用户名与主机FTP.MICROSOFT.COM 相连接:
ngINetConn = InternetConnect(lngINet, “ftp.microsoft.com”, 0,
“anonymous”,”[email=[ft=,,Times]ally@wallyworld.com]ally@wallyworld.com[/email]”, 1, 0, 0)
如果函数调用失败,则lngINetConn 为NULL。反之,lngINetConn 就保存在下一步中将传递给,如:FtpGetFile 的句柄的值。
FtpGetFile参数:
第一个参数:InternetConnect 调用返回的句柄值。
第二,三个参数:分别是FTP服务器上的文件名和将在本地机上创建的文件名。
第四个参数:标志是0(替换本地文件)或1 (如果本地文件已经存在则取消)。
第五个参数:用来指定本地文件的文件属性。0表示忽略。
第六个参数:参数指定为1 (FTP_TRANSFER_TYPE_ASCII)是用ASCII 传输文件(A类传输方法),指定为2 (FTP_TRANSFER_TYPE_BINARY)是用二进制传输文件(1类传输方法)。
第七个参:当使用回叫信号时,用来识别应用程序前后关系,0表示忽略。
所以,以下是得到DIRMAP.TXT文件并将其存在 C:DIRMAP.TXT的调用。如果本地文件已经存在,就覆盖它。
blnRC = FtpGetFile(lngINetConn, “dirmap.txt”,”c:dirmap.txt”, 0, 0, 1, 0)
如果函数调用成功,blnRC为 True, 反之为False。
现在文件已经被接收,使用InternetCloseHandle关闭InternetConnection 和InternetOpen 返回的句柄,另外因为InternetConnection 句柄是由InternetOpen 句柄决定的,关闭他们时的顺序与创建时相反。
1、用一个InternetOpen调用设置环境。
2、调用InternetConnect 函数与主机连接。
3、调用FtpGetFile 达到文件。
4、关闭第1、2步创建的句柄,用InternetCloseHandle 函数。
InternetOpen参数:
第一个参数:用来指定调用Internet 函数的应用程序或实体(可以任意设定)。
第二个参数:指定我们是直接与某一主机相连还是使用代理服务器相连。
如果传递值1 (INTERNET_OPEN_TYPE_DIRECT)。就直接与主机连接。
如果传递3 (INTERNET_OPEN_TYPE_PROXY)3,就通过代理服务器。
如果传递0 (INTERNET_OPEN_TYPE_PRECONFIG),连接时就要基于
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings下的注册表数值ProxyEnable、ProxyServer和 ProxyOverride 。
我们可以使用第三参数和第四个参数,而不是注册设置来提供代理服务器和不使用代理服务器的IP地址和名字。列出代理的基本格式是rotocol=protocol://proxy_name:access_port?。例如,要指定Proxy1 上的端口21为代理服务器,用Ftp=ftp://Proxy1:21?作为sProxyName。要饶过以ov? 开始的任何主机,sProxyBypass 字符串应为ov*? 。
第五个参数:用来显示影响函数结果的不同选择。在我们的例子中,我们传递0。所以,不使用代理而打开一个Internet session 时,我们的调用是这样的:
lngINet = InternetOpen(“FTP Control”, 1, vbNullString, vbNullString, 0) // vbNullString,NULL
如果函数调用失败,lngINet 为NULL。不然,lngINet 就保存在下一步中将要传递给InternetConnect函数的句柄的值。
InternetConnect参数:
第一个参数:是InternetOpen 调用返回的句柄值。
第二个参数:是我们即将连接的FTP服务器的IP地址或主机名。
第三个参数:指示与哪一个端口连接。0(INTERNET_DEFAULT_FTP_PORT),它指示的是
默认的端口21。
第四,五个参数:分别传递用户名和口令。若为Null (vbNullString),则使用预设的帐号和密码,以FTP服务为例,若lpszUsername及lpszPassword为Null,代表以“anonymous”(匿名)为其登录帐号及“使用者的e-mail帐号”为其登陆密码。
第六个参数:用来指示使用的服务类型。1 (INTERNET_SERVICE_FTP),表示FTP服务。
第七个参数:传递 x8000000,连接将使用被动FTP语义。传递0来使用非被动语义。
第八个参数:当使用回叫信号时,用来识别应用程序的前后关系。不使用则为0。
现在使用匿名的电子邮件用户名与主机FTP.MICROSOFT.COM 相连接:
ngINetConn = InternetConnect(lngINet, “ftp.microsoft.com”, 0,
“anonymous”,”[email=[ft=,,Times]ally@wallyworld.com]ally@wallyworld.com[/email]”, 1, 0, 0)
如果函数调用失败,则lngINetConn 为NULL。反之,lngINetConn 就保存在下一步中将传递给,如:FtpGetFile 的句柄的值。
FtpGetFile参数:
第一个参数:InternetConnect 调用返回的句柄值。
第二,三个参数:分别是FTP服务器上的文件名和将在本地机上创建的文件名。
第四个参数:标志是0(替换本地文件)或1 (如果本地文件已经存在则取消)。
第五个参数:用来指定本地文件的文件属性。0表示忽略。
第六个参数:参数指定为1 (FTP_TRANSFER_TYPE_ASCII)是用ASCII 传输文件(A类传输方法),指定为2 (FTP_TRANSFER_TYPE_BINARY)是用二进制传输文件(1类传输方法)。
第七个参:当使用回叫信号时,用来识别应用程序前后关系,0表示忽略。
所以,以下是得到DIRMAP.TXT文件并将其存在 C:DIRMAP.TXT的调用。如果本地文件已经存在,就覆盖它。
blnRC = FtpGetFile(lngINetConn, “dirmap.txt”,”c:dirmap.txt”, 0, 0, 1, 0)
如果函数调用成功,blnRC为 True, 反之为False。
现在文件已经被接收,使用InternetCloseHandle关闭InternetConnection 和InternetOpen 返回的句柄,另外因为InternetConnection 句柄是由InternetOpen 句柄决定的,关闭他们时的顺序与创建时相反。
相关文章推荐
- QT QFtp使用实例 从FTP下载一个文件
- 使用sun.net.ftp下载、上传文件完整版
- 使用VBS自动删除已经从FTP下载下来的文件
- php使用curl实现ftp文件下载功能
- shell脚本编程-例子_使用expect下载ftp文件
- 使用FTPClient进行文件服务器内文件的上传和下载
- Python在使用FTP下载上传文件时遇到中文名称和路径时的解决办法
- JAVA中使用FTPClient实现文件上传下载
- JAVA中使用FTPClient实现文件上传下载
- 使用java向FTP上传或下载压缩文件时的问题
- JAVA使用FTP上传下载文件的问题
- VB.NET中使用FTP下载文件的两种方法
- jaVA使用FTP上传下载文件的问题
- 如何在命令行中使用 ftp 命令上传和下载文件
- 使用Firefox访问ftp并上传下载文件
- ServerU FTP 9.1.0.5完美破解版 使用教程 学校局域网上课上传下载文件用--图片来自网络
- JAVA中使用FTPClient实现文件上传下载
- Linux 利用shell中使用ftp自动下载上传文件
- 使用ftp上传下载文件的工具类(亲测可用)
- 使用Java 编写FTP中的长传文件和下载文件