代码演示VB.NET处理FTP两种方法

开发 后端
大家都知道VB.NET处理FTP没有专门处理FTP的类,在这里呢给大家介绍了两种方法使用Ftp.exe,通过process类来调用它和使用win32api——wininet.dll。

熟悉VB.NET都知道,它没有专门处理FTP的类,现在我们可以通过调用系统自带的FTP.EXE或者是调用win32API中的wininet.dll两种方法来完成基本操作。希望以下的代码能为大家抛砖引玉。

VB.NET处理FTP方法一:使用Ftp.exe,通过process类来调用它。

  1. ImportsSystem.Diagnostics  
  2. ...  
  3. PublicSubGetFileByCallFtp()  
  4. '定义ProcessStartInfo,Process的启动信息。  
  5. DimpsiAsNewProcessStartInfo  
  6. 'ftp.exe的路径***放到配置文件里。  
  7. psi.FileName="C:\WINNT\system32\ftp.exe" 
  8. psi.RedirectStandardInput=False 
  9. psi.RedirectStandardOutput=True 
  10. '该值指示不使用操作系统Shell程序启动进程。  
  11. psi.UseShellExecute=False 
  12. '命令集文件名.注意,路径中不能有空格.  
  13. DimfileNameAsString="C\ftp.txt" 
  14. '-s:FileName表示,从文件中读取控制命令  
  15. psi.Arguments="-s:"+fileName  
  16. DimprocAsProcess  
  17. proc=Process.Start(psi)  
  18. '等待进程完成任务  
  19. proc.WaitForExit()  
  20. '在控制台输出结果  
  21. Console.WriteLine(proc.StandardOutput)  
  22. Console.ReadLine()  
  23. EndSub  

VB.NET处理FTP方法二,使用win32api——wininet.dll

首先是,api声明:

因为此测试程序,是VB.NETConsoleApplication所以,api声明写在Module里,

方法是静态的。所以没加Shared关键字,这一点请大家注意。

  1. <DllImport("wininet")>_  
  2. PublicFunctionInternetOpen(ByValsAgentAsString,ByValLAccessTypeAsInteger,ByValsProxyNameAsString,_  
  3. ByValSProxyBypassAsString,ByVallFlagsAsInteger)AsInteger  
  4. EndFunction  
  5. <DllImport("wininet")>_  
  6. PublicFunctionInternetConnect(ByValhInternetSessionAsInteger,ByValsServerNameAsString,_  
  7. ByValnServerPortAsInteger,ByValsUsernameAsString,_  
  8. ByValsPasswordAsString,ByVallServiceAsInteger,_  
  9. ByVallFlagsAsInteger,ByVallContextAsInteger)AsInteger  
  10. EndFunction  
  11. <DllImport("wininet")>_  
  12. PublicFunctionFtpGetFile(ByValhFtpSessionAsInteger,ByVallpszRemoteFileAsString,_  
  13. ByVallpszNewFileAsString,ByValfFailIfExistsAsBoolean,_  
  14. ByValdwFlagsAndAttributesAsInteger,ByValdwFlagsAsInteger,_  
  15. ByValdwContextAsInteger)AsBoolean  
  16. EndFunction  
  17. <DllImport("wininet")>_  
  18. PublicFunctionInternetCloseHandle(ByValhInetAsInteger)AsInteger  
  19. EndFunction 

调用:

  1. PublicSubGetFileByCallWininetDLL()  
  2. Try  
  3. DimintinetAsInteger=InternetOpen(Nothing,0,Nothing,Nothing,0)  
  4. Ifintinet>0Then  
  5. '参数:intinet的session值,ftp地址,端口,用户名,密码,lService,lFlags,lContext  
  6. DimintinetconnAsInteger=InternetConnect(intinet,"192.168.110.152",0,"tokiwa","tokiwa",1,0,0)  
  7. Ifintinetconn>0Then  
  8. '下载某个文件到指定文件  
  9. DimretAsBoolean=FtpGetFile(intinetconn,"pagerror.gif","C:\itest.gif",0,0,1,0)  
  10. IfretThen  
  11. Console.WriteLine("ok!")  
  12. Console.ReadLine()  
  13. EndIf  
  14. InternetCloseHandle(intinetconn)  
  15. InternetCloseHandle 

以上是VB.NET处理FTP的两种方法,大家学会了吗?

【编辑推荐】

  1. VB.NET实例教程对关于Array问题的解决
  2. VB.NET实例教程之查询系统启动信息案例剖析
  3. VB.NET实用教程之VB.NET实现登陆Ftp经典方案讲解
  4. VB.NET实用教程之抓取网页乱码解决方案
  5. 突破VB.NET命名空间两大难关
责任编辑:田树 来源: 乐博网
相关推荐

2009-11-03 16:20:16

VB.NET文本框

2010-01-19 18:06:14

VB.NET发送邮件

2009-10-29 13:46:14

VB.NET DES加

2009-11-03 11:06:40

VB.NET事件

2009-11-02 09:45:23

VB.NET文件系统对

2009-10-14 16:46:25

VB.NET OnSt

2009-10-27 10:58:00

VB.NET文件名排序

2009-10-28 15:18:46

VB.NET网络应用

2010-01-15 16:29:47

VB.NET对象存储

2010-01-21 17:58:40

VB.NET List

2009-10-26 14:50:18

VB.NET遍历注册表

2009-10-26 09:50:20

VB.NET Star

2010-01-14 15:15:22

VB.NET数据行处理

2009-10-26 11:04:36

VB.NET UDP协

2009-10-27 14:05:59

VB.NET程序

2010-01-18 14:35:11

VB.NET读取内存

2009-10-23 14:31:05

VB.NET类定义

2009-11-03 09:26:13

VB.NET方法

2009-10-23 15:35:42

VB.NET实用教程

2010-01-13 09:31:39

VB.NET窗体打印
点赞
收藏

51CTO技术栈公众号