ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:68.08KB ,
资源ID:23579565      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23579565.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VB编程FTP微软详实案例附带源程序.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VB编程FTP微软详实案例附带源程序.docx

1、VB编程FTP微软详实案例附带源程序 实例7 FTP客户端程序 目标和要点 C 实例目标本实例将介绍创建FTP客户端程序并进行与FTP服务器连接的实例,程序运行的结果如图所示。图启动窗体:图7-1 Ftp客户端程序运行时的启动窗体主窗体:图7-2 Ftp客户端程序运行时的主窗体本例中利用API函数实现与FTP服务器的连接与对话,可以根据主机服务器的地址和端口连接到Internet上任何一台FTP服务器上,对FTP服务器进行文件上载、文件下载等操作。 $ 技术要点本实例的技术要点主要包括:1.建立FTP连接的基本原理与步骤2.建立FTP连接的要使用到的API函数3.对FTP进行文件与目录操作在本

2、实例中,与FTP服务器的连接与对话是通过API函数来实现的,建立连接必须遵循一定的步骤和规则,才能正确地与FTP服务器取得连接和对话,总的说来,建立连接的步骤一般分为以下几步:1打开Internet会话2建立FTP类型的Internet连接3设置FTP服务器的当前目录4查看FTP服务器上指定目录下的文件5从FTP服务器当前目录下载文件或上载文件6在FTP服务器上进行目录或文件操作,如创建新目录,删除目录,删除文件等7关闭与FTP服务器的连接8关闭Internet对话(其中步骤、可重复进行)设计窗体时,设计窗体时为了便于了解建立连接的步骤,将打开Internet对话作为一个单独的启动时显示的窗体

3、,在成功打开Internet对话后,显示进行FTP对话的主窗体,在主窗体中与FTP服务器交互对话。对于实现连接与对话的每一个步骤,API函数至关重要,在整个交互对话过程中,我们只要熟悉了相应的API函数,就不难理解进行FTP操作的用法。至于API函数怎么样通过Internet与FTP进行会话的底层细节,我们可不必去考虑。 实 现 步 骤 F 创建启动窗体frmFTPst启动VB,新建一个标准EXE过程,在默认的窗体Form1中加载以下控件:两个CommonButton控件、两个TextBox控件、两个Frame控件、两个Label控件。 F 设定窗体和控件属性首先适当调整窗体的尺寸大小,设置其

4、标题为FTP客户端程序、窗体名称。然后设置各个控件的属性值。窗体及其主要控件的属性如表7-1所示:表7-1 frmFTPst窗体及其控件的主要属性对 象属 性属 性 值 Form Name Caption BorderStyle MaxButton MinButton FrmFTPst FTP客户端程序 2-Sizable True True CommonButton Name Caption CmdInternetOpen 打开Internet会话 CommonButton Name Caption CmdInternetClose 关闭Internet会话 TextBox Name App

5、earance TxtProxy 0 Flat TextBox Name Appearance TxtProxyPort 0 Flat Label Name Caption Label1 端口: Label Name Caption Label2 地址: Frame Name Caption Frame1 打开及关闭会话 Frame Name Caption Frame1 代理服务器设计窗体最终如图7-3所示:图7-3 设计的frmFTPst窗体F 创建主窗体frmFTP在菜单“工程”下选择“添加窗体”,加入窗体Form2,将From2的大小调整到合适的尺寸,往窗体中添加以下控件:七个Comm

6、onButton控件、四个TextBox控件、两个CheckBox控件、两个OptionBox控件、一个TreeView控件、一个DriveListbox控件、一个DirListBox控件、一个FileListBox控件、一个ImageList控件、五个Label控件、四个Frame控件。 F 设定窗体和控件属性首先适当调整窗体的尺寸大小,设置其标题为FTP客户端程序、窗体名称。然后设置各个控件的属性值。窗体及其主要控件的属性如表7-2所示:表7-2 frmFTP窗体及其控件的主要属性对 象属 性属 性 值 Form Name Caption BorderStyle MaxButton Min

7、Button FrmFTP FTP客户端程序 2-Sizable True True CommonButton Name Caption CmdConnect 连接 CommonButton Name Caption CmdClose 断开 CommonButton Name Caption CmdGet 下载 CommonButton Name Caption CmdPut 上载 CommonButton Name Caption CmdMdDir 新建目录 CommonButton Name Caption CmdDelDir 删除目录 CommonButton Name Caption

8、CmdDelFile 删除文件 TextBox Name Appearance TxtServer 0 Flat TextBox Name Appearance TxtUser 0 Flat TextBox Name Appearance TxtPassword 0 Flat TextBox Name Appearance TxtPort 0 Flat CheckBox Name Caption Value ChkAnon 匿名登录 0 Unchecked CheckBox Name Caption Value ChkPassive FTP反向对话 0 Unchecked OptionButt

9、on Name Caption Value OptBin 二进制 False OptionButton Name Caption Value OptAscii 文本 False TreeView Name Style Appearance TreeView1 7 1 DriveListBox Name Drive1 DirListBox Name Dir1 FileListBox Name File1 ImageList Name ImageList1 Label Name Caption Label1 FTP服务器:Label Name Caption Label2 用户名:Label Na

10、me Caption Label3 口令: Label Name Caption Label4 端口: Label Name Caption Label5 传输方式: Frame Name Caption Frame1 FTP服务器: Frame Name Caption Frame2 Frame Name Caption Frame3 Frame Name Caption Frame4 本地计算机:设计窗体最终如图7-4所示:图7-4 设计的frmFTP窗体编写代码1模块modWinInet的代码:在此模块中声明该程序用到的API函数及其常量:Option ExplicitPublic Co

11、nst MAX_PATH = 260Public Const NO_ERROR = 0在WIN32_FIND_DATA结构中的文件查找属性常数Public Const FILE_ATTRIBUTE_READONLY = &H1 只读文件Public Const FILE_ATTRIBUTE_HIDDEN = &H2 隐含文件Public Const FILE_ATTRIBUTE_SYSTEM = &H4 系统文件Public Const FILE_ATTRIBUTE_DIRECTORY = &H10 目录文件(所获取的文件类型是目录) 在FtpFindFirstFile和FtpFindNext

12、File函数把文件和目录当作文件一同获取Public Const FILE_ATTRIBUTE_ARCHIVE = &H20 存档文件Public Const FILE_ATTRIBUTE_NORMAL = &H80 文件没有的其他属性值Public Const FILE_ATTRIBUTE_TEMPORARY = &H100 临时文件Public Const FILE_ATTRIBUTE_COMPRESSED = &H800 被压缩的文件和目录Public Const FILE_ATTRIBUTE_OFFLINE = &H1000直接从远程服务器中获得数据,而不使用本地缓冲的数据Public

13、 Const INTERNET_FLAG_RELOAD = &H80000000FTP服务器的文件打开标记:只读或可写Public Const GENERIC_READ = &H80000000Public Const GENERIC_WRITE = &H40000000标示调用Internet会话的应用程序的名称Public Const scUserAgent = FTP CLIENT按照预定义的方式打开连接Internet对话Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0直接连接InternetPublic Const INTERNET_OPEN

14、_TYPE_DIRECT = 1通过代理服务器连接Public Const INTERNET_OPEN_TYPE_PROXY = 3使用与连接协议相应的端口号Public Const INTERNET_INVALID_PORT_NUMBER = 0与ftp服务器之间的文件传输采取ascii(文本)方式Public Const FTP_TRANSFER_TYPE_ASCII = &H1与ftp服务器之间的文件传输采取binary(二进制)方式Public Const FTP_TRANSFER_TYPE_BINARY = &H2Public Const INTERNET_FLAG_PASSIVE

15、= &H8000000从服务器返回的一个附加错误Public Const ERROR_INTERNET_EXTENDED_ERROR = 12003在与Internet上的一些常用的服务器程序连接时,常用的端口号是.FTP协议服务器的端口号为21Public Const INTERNET_DEFAULT_FTP_PORT = 21GOPHER协议服务器的端口号为70Public Const INTERNET_DEFAULT_GOPHER_PORT = 70HTTP协议服务器的端口号为80Public Const INTERNET_DEFAULT_HTTP_PORT = 80连接Internet

16、服务的常数Public Const INTERNET_SERVICE_FTP = 1Public Const INTERNET_SERVICE_GOPHER = 2Public Const INTERNET_SERVICE_HTTP = 3用于装载文件时间的结构Type FILETIME dwLowDateTime As Long dwHighDateTime As LongEnd Type这个结构用于装载与找到的文件有关的具体信息Type WIN32_FIND_DATA dwFileAttributes As Long 文件的属性 ftCreationTime As FILETIME 文件的

17、创建时间 ftLastAccessTime As FILETIME 文件的最后一次被读写的时间 ftLastWriteTime As FILETIME 文件的最后一次修改的时间 nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH 用于存放文件名的字符串 cAlternate As String * 14End TypePublic Const ERROR_NO_MORE_FILES = 18连接FTP服务器的操作函数打开

18、连接internet的会话Public Declare Function InternetOpen Lib wininet.dll Alias InternetOpenA _(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _ByVal sProxyBypass As String, ByVal lFlags As Long) As LongsAgent-要调用internet对话的应用程序名lAccessType-请求的访问的类型,包括:INTERNET_OPEN_TYPE_PREC

19、ONFIG-预配置(缺省)INTERNET_OPEN_TYPE_DIRECT-直接指向internetINTERNET_OPEN_TYPE_PROXY-通过代理服务器连接sProxyName-如果lAccessType被设置为INTERNET_OPEN_TYPE_PROXY,该参数为代理服务器的名字sProxyBypass-包含一系列代理服务器地址的字符串lFlags-会话的选项,可包括下列值:INTERNET_FLAG_DONT_CACHE-不对数据进行本地缓冲或通过网关服务器缓冲INTERNET_FLAG_ASYNC-当操作完成时,将同INTERNET_STATUS_REQUEST_COM

20、PLETE一起进行一个状态回调INTERNET_FLAG_OFFLINE-只通过永久缓冲进行下载操作打开一个根据连接类型的Internet连接Public Declare Function InternetConnect Lib wininet.dll Alias InternetConnectA _(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _ByVal sUsername As String, ByVal sPassword As String, By

21、Val lService As Long, _ByVal lFlags As Long, ByVal lContext As Long) As LonghInternetSession-函数InternetOpen()打开Internet对话返回的值sServerName-要连接的服务器的名称或IPnServerPort-该连接的Internet端口sUsername-登录的用户帐号sPassword-登录的口令lService-要连接的服务器类型(这里是连接FTP服务器,连接的类型为常数INTERNET_SERVICE_FTP)关闭Internet连接Public Declare Funct

22、ion InternetCloseHandle Lib wininet.dll _(ByVal hInet As Long) As IntegerhInet-InternetConnect()函数返回的值文件查找操作函数在FTP连接中查找一个文件。在调用此函数后取得第一个文件后,可以接着调用FtpFindNextFile()获得下一个查到的FTP服务器上的文件。Public Declare Function FtpFindFirstFile Lib wininet.dll Alias FtpFindFirstFileA _(ByVal hFtpSession As Long, ByVal lp

23、szSearchFile As String, _ lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As LonglpszSearchFile-指向要搜索的文件名。可以通配符*.*的形式。lpFindFileData-用于装载与找到的文件有关的具体信息dwFlags-数据传输的方式,通常设置为0(ASCII方式)继续由FtpFindFirstFile()函数发起的文件搜索操作Public Declare Function InternetFindNextFile Lib win

24、inet.dll Alias _ InternetFindNextFileA (ByVal hFind As Long, _lpvFindData As WIN32_FIND_DATA) As LonghFind-FtpFindFirstFile()函数的返回值lpvFindData-用于装载与找到的文件有关的具体信息目录操作函数改变FTP服务器的当前目录。Public Declare Function FtpSetCurrentDirectory Lib wininet.dll Alias _ FtpSetCurrentDirectoryA (ByVal hFtpSession As Lon

25、g, _ByVal lpszDirectory As String) As BooleanlpszDirectory-包含要到达的目录名。可以是相对的或绝对的路径。在ftp服务器上创建目录Public Declare Function FtpCreateDirectory Lib wininet.dll Alias FtpCreateDirectoryA (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As BooleanlpszDirectory-包含要创建目录的字符串,可以是一个相对路径或绝对路径取得ftp当前的目录的名

26、字Public Declare Function FtpGetCurrentDirectory Lib wininet.dll Alias FtpGetCurrentDirectoryA _ (ByVal hFtpSession As Long, lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As BooleanlpszCurrentDirectory-存放目录名字的字符串lpdwCurrentDirectory-目录名字字符串的字节数删除ftp服务器的一个目录Public Declare Function FtpR

27、emoveDirectory Lib wininet.dll Alias FtpRemoveDirectoryA _ (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As BooleanlpszDirectory-要删除的目录名称,可以是相对路径或绝对路径文件操作函数从ftp服务器上取得一个文件并保存在本地机器上,此函数包括了与从一个FTP服务器中读取一个文件并在本地保存等操作有关的所有功能Public Declare Function FtpGetFile Lib wininet.dll Alias FtpGetFileA

28、 _(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _ ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, _ ByVal dwFlags As Long, ByVal dwContext As Long) As BooleanlpszRemoteFile-包含FTP服务器中要读的文件名lpszNewFile-在本地机器中要创建的文件名fFailIfExists-当为TRUE时,如果

29、文件已经存在,则调用失败dwFlagsAndAttributes-文件的属性dwFlags-文件的传输方式可能包括下列值:FTP_TRANSFER_TYPE_ASCII-使用可以将控制和格式信息转换到本地对应文件的ASCII传输方式FTP_TRANSFER_TYPE_BINARY-使用把文件作为一个连续数据流传输的FTP图象传输方式,这种方式不区别在文件内部数据结构之间的任何分界(如行结束的回车标记)dwContext-要取回的文件的描述表标识符 把一个文件上栽到FTP服务器上。其中包括了要将一个文件上载到FTP服务器上所有的有关操作Public Declare Function FtpPutFile Lib wininet.dll Alias FtpPutFileA _(ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, _ ByVal dwFlags As Long, ByVal dwContext As Lo

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1