在VFP中实现FTP远程通信
来源:优易学  2011-12-9 18:39:30   【优易学:中国教育考试门户网】   资料下载   IT书店

  目前VFP仍然受到很多程序员的喜爱,特别是在中小规模的单机、局域网的前台应用软件开发中得到了广泛的使用。下面介绍一下如何使用FCREATE()、FWRITE()、FCLOSE()三个函数,在VFP中实现FTP远程传送文件的方法。

  FCREATE(cFileName[,nFileAttribute])函数的功能是创建并打开低级文件,其中参数cFileName指定要创建的文件名称,在文件名前可以加入驱动器指示符和路径,如果没有包括驱动器指示符或路径,则在默认目录下创建该文件。NFileAttribute指定文件的属性,可选值为0…7,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.dllRnaDial 我的连接

  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的远程通信.

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训