程序调用批处理完成上传、下载

关于上传下载的新的方案.  

一、当前程序的处理方式  
 在程序中将ftp的文件上传,文件下载,取得文件列表等操作封装为类的方法 
 这些方法使用Socket通过TCP/IP协议和服务器通讯完成ftp的文件上传, 
 文件下载,取得文件列表等操作 
 程序通过调用封装好的类的方法实现相应功能 
二、新的程序的处理方式  
 将ftp的文件上传,文件下载,取得文件列表等操作采用Dos命令行实现 
 程序通过调用命令行来实现文件的上传下载 

 要解决的问题 
 1、几条ftp命令要能在一个批处理中完成(OK) 

  a、首先建立“ftp.scr”文件,内容如下
   open 192.168.1.67 6767   
   user   
   yuanj   
   softroad   
   get jconf_contfile  c:\jconf_contfile   
   bye   
  b、建立“run.bat”文件,内容如下    
   ftp -n -s:ftp.scr>ftp.log   
 2、批处理可以在vb。net中调用(OK)     
                Dim objExecuteFile As New System.Diagnostics.ProcessStartInfo    
                Dim objExecute As New System.Diagnostics.Process    
                objExecuteFile.FileName = "CMD.exe"    
                objExecuteFile.Arguments ="/c run.bat"    
                objExecuteFile.UseShellExecute = True    
                objExecute.StartInfo = objExecuteFile    
                objExecute.Start()    

 3、批处理中执行的ftp命令的返回结果要能被程序读取(OK)    
   “run.bat”文件中的 “ftp -n -s:ftp.scr>ftp.log”   
   会将ftp命令的返回结果写入“ftp.log”文件中  

 4、ftp命令的返回结果的分析    
  ftp命令ls的返回结果如下   
   200 PORT command successful.  
   150 Opening ASCII mode data connection for file list.  
   1.txt
   2.txt
   226 Transfer complete.  
   ftp: 214 bytes received in 0.02Seconds 13.38Kbytes/sec.  

  我们需要将有用的信息提取出来,这里我们需要提取文件列表。   
 5、ftp.scr文件中的内容是程序动态写进入的    
三、总结     
 1、新的程序的处理方式实现是可以的,但由于是调用命令行,属于异步调用,    
  返回的结果存于文本文件中,取结果需要在再去读取文本文件,还要   
  有同步的考虑,处理相对麻烦些 

原文地址:https://www.cnblogs.com/gjung/p/560725.html