找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4557|回复: 0

在VFP中实现FTP远程通信

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2010-12-7 11:14:48 | 显示全部楼层 |阅读模式
目前VFP仍然受到很多程序员的喜爱,特别是在中小规模的单机局域网的前台应用软件开发中得到了广泛的使用下面介绍一下如何使用FCREATE()
FWRITE()FCLOSE()三个函数,在VFP中实现FTP远程传送文件的方法
FCREATE(cFileName[,nFileAttribute])函数的功能是创建并打开低级文件,其中参数cFileName指定要创建的文件名称,在文件名前可以加入驱动
器指示符和路径,如果没有包括驱动器指示符或路径,则在默认目录下创建该文件NFileAttribute指定文件的属性,可选值为07,0为读写方式(默
认值),其它参见VFP的随机帮助返回值为数值型,创建成功返回文件句柄编号,可以把该编号赋给内存变量,从而可以在其他的低级文件函数用此内
存变量访问该文件,如果不能创建文件,则返回-1
FWRITE(cFileHandle,cExpression[,nCharactersWritten])函数的功能是向低级文件函数打开的文件或通信端口写入字符串,其中参数
nFileHandle为文件句柄号,或要写入字符串的通信端口,cExpression指定FWRITE()函数写入字符表达式,nCharatersWritten为写入文件或通信端口
的cExpression中的字符的数目,返回值为0,表示操作失败
FCLOSE(,nFileHandle)函数的功能是刷新并关闭低级文件函数打开的文件或通信端口
下面列出名称为MYFTP()的自定义函数的源代码,该函数首先调用已有的拨号连接,待用户确定线路连通后,创建ftp连接进行文件传输,完成后,
关闭ftp通信端口,并提示用户断开拨号连接
function myftp
***调用拨号网络中名为我的连接的拔号连接,如用户为专线或局域网连接,删除该段
run /N rundll32.exe rnaui.dllRnaDial 我的连接
if messagebox('通信线路是否连通,开始传送文件吗?',1)=2
wait wind [取消传送文件,请断开连接线路!] nowait
return -1
endif
*** 创建FTP连接
fp=fcreate(ftpcp,0)
if fp=-1
wait wind [不能创建FTP连接,请检查网络配置]nowait
return -1
endif
*** FTP用户登录,192.168.0.1为远程FTP服务器的IP
ss=[open 10.168.0.1]+chr(13)+chr(10)+[ftpusrname]+chr(13)+chr(10)+[usrpasswd]+chr(13)+chr(10)
if fwrite(fp,ss)=0
wait wind [FTP用户登录失败] nowait
fclose(fp)
return -1
endif
***将本地文件(c:\autoexec.bat)传送到远程服务器
ss=[bin]+chr(13)+chr(10)+[put c:\autoexec.bat] +chr(13)+chr(10)
if fwrite(fp,ss)=0
wait wind [上传文件失败] nowait
fclose(fp)
return -1
endif
*** 将远程服务器上的文件(remofile.txt)下载到本地机的默认目录下
ss=[get remofile.txt]+chr(13)+chr(10)+[bye]+chr(13)+chr(10)
if fwrite(fp,ss)=0
wait wind [下载文件出错] nowait
fclose(fp)
return -1
endif
***关闭FTP通信端口
fclose(fp)
wait wind [文件传送成功,请断开连接线路!] nowait
return 0
函数说明:使用FCREATE()函数创建FTP通信端口,FWRITE()函数写入FTP命令行实现本地机向远程服务器的上传及下载文件,FCLOSE()函数关闭FTP
通信端口用户根据自己的需要将上述的代码取舍修改后,加至程序或事件代码中,即可在VFP中实现FTP的远程通信

【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表