在VFP中实现FTP远程通信 安立 2001年 51期 目前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的远程通信。