- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FTP简介和思路
?基础知识篇(FTP简介和思路,高手跳过)??????百度百科说:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。???????也就是说,与大多数Internet服务一样,FTP也是一个客户机/服务器系统。它最吸引人的就是,作为一个上网用户,可通过FTP在任何两台Internet主机之间拷贝文件。网上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,大大地免费资源啊。另外,公司内架构FTP服务器,也方便了公司内部文件共享。???????那怎么调用FTP协议进行连接呢?很庆幸,在windows操作系统的安装过程中,通常都安装了tcp/ip协议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。????????因此,现在主流的VBA/VB操作FTP的操作思路,主要就两种:(1)调用WinINet.DLL(后面重点讲);(2)使用VBA/VB的SHELL命令,调用CMD命令的FTP函数进行操作(频繁API调用,很容易被防火墙封杀,为API的备选方案,最后讲,带过而已);(二)????????关于WinINet.DLL的API调用流程概述(API高手可以二连跳)????????微软的开发人员已经在WinINet.DLL中为我们提供了FTP功能,处理有关FTP协议的任务。我们所需要做的是,将一些提供的功能调动起来,集成起来,方便我们的操作。????????WinINet API 的说明文件网上可以搜索到。针对菜鸟,简单的说下API:API是WINDOWS应用程序编程的接口,是为了满足VBA只能操作系统地一部分的瓶颈,向VBA公开的控制操作系统地函数和对象。这些API在WINDOWS里面,以动态链接库(DLL)存在,怎么API呢?(简要带过,其他请各位自己查专业资料吧)(1)????????声明函数和定义专属常量和类型,是使VBA能像内置函数一样使用API函数的基础;(2)????????参数传递(这个没必要说了吧,天天各位经常在UDF自定义函数都用到)(3)????????调用函数后,返回句柄。要善用句柄,它是我们判断API是否成功的关键,以及下一个函数调用的必要条件,且是获得我们所需结果的必然途径。通俗而言,例如VBA让我去打酱油,首先,我要先要去拿酱油瓶,获得酱油瓶这个句柄,才能去开门,获得开门这个句柄才能去找单车,找到单车这个句柄,我才能去小卖部。。。通过关键句柄的传递,我们才能获得结果。????????WinINet.DLL的各FTP函数句柄传递过程如下:????????????????????????????????????????????????INTERNETOPEN(建立应用环境进程)??????????????????????????????????????????????????????????????????????↓????????????????????????????????????????????????INTERNETCONNECT(连接层,连接服务器)??????????????????????????????????????????????????????????????????????↓?????????????------------------------------------------------------------------------------????????????↓???????????????????????????????????????↓????????????????????????↓????????????????????????????↓???FTPCREATEDIRECTORY???FTPGETFILE??FTPPUTFILE????FTPSETCURRENTDIRECTIORY等???(功能函数层)????????????---------------------------------------------------------------------------------------------------?????????????????
文档评论(0)