代碼演示VB.NET處理FTP兩種方法
作者:佚名 
  大家都知道VB.NET處理FTP沒有專門處理FTP的類,在這里呢給大家介紹了兩種方法使用Ftp.exe,通過process類來調用它和使用win32api——wininet.dll。
 熟悉VB.NET都知道,它沒有專門處理FTP的類,現(xiàn)在我們可以通過調用系統(tǒng)自帶的FTP.EXE或者是調用win32API中的wininet.dll兩種方法來完成基本操作。希望以下的代碼能為大家拋磚引玉。
VB.NET處理FTP方法一:使用Ftp.exe,通過process類來調用它。
- ImportsSystem.Diagnostics
 - ...
 - PublicSubGetFileByCallFtp()
 - '定義ProcessStartInfo,Process的啟動信息。
 - DimpsiAsNewProcessStartInfo
 - 'ftp.exe的路徑***放到配置文件里。
 - psi.FileName="C:\WINNT\system32\ftp.exe"
 - psi.RedirectStandardInput=False
 - psi.RedirectStandardOutput=True
 - '該值指示不使用操作系統(tǒng)Shell程序啟動進程。
 - psi.UseShellExecute=False
 - '命令集文件名.注意,路徑中不能有空格.
 - DimfileNameAsString="C\ftp.txt"
 - '-s:FileName表示,從文件中讀取控制命令
 - psi.Arguments="-s:"+fileName
 - DimprocAsProcess
 - proc=Process.Start(psi)
 - '等待進程完成任務
 - proc.WaitForExit()
 - '在控制臺輸出結果
 - Console.WriteLine(proc.StandardOutput)
 - Console.ReadLine()
 - EndSub
 
VB.NET處理FTP方法二,使用win32api——wininet.dll
首先是,api聲明:
因為此測試程序,是VB.NETConsoleApplication所以,api聲明寫在Module里,
方法是靜態(tài)的。所以沒加Shared關鍵字,這一點請大家注意。
- <DllImport("wininet")>_
 - PublicFunctionInternetOpen(ByValsAgentAsString,ByValLAccessTypeAsInteger,ByValsProxyNameAsString,_
 - ByValSProxyBypassAsString,ByVallFlagsAsInteger)AsInteger
 - EndFunction
 - <DllImport("wininet")>_
 - PublicFunctionInternetConnect(ByValhInternetSessionAsInteger,ByValsServerNameAsString,_
 - ByValnServerPortAsInteger,ByValsUsernameAsString,_
 - ByValsPasswordAsString,ByVallServiceAsInteger,_
 - ByVallFlagsAsInteger,ByVallContextAsInteger)AsInteger
 - EndFunction
 - <DllImport("wininet")>_
 - PublicFunctionFtpGetFile(ByValhFtpSessionAsInteger,ByVallpszRemoteFileAsString,_
 - ByVallpszNewFileAsString,ByValfFailIfExistsAsBoolean,_
 - ByValdwFlagsAndAttributesAsInteger,ByValdwFlagsAsInteger,_
 - ByValdwContextAsInteger)AsBoolean
 - EndFunction
 - <DllImport("wininet")>_
 - PublicFunctionInternetCloseHandle(ByValhInetAsInteger)AsInteger
 - EndFunction
 
調用:
- PublicSubGetFileByCallWininetDLL()
 - Try
 - DimintinetAsInteger=InternetOpen(Nothing,0,Nothing,Nothing,0)
 - Ifintinet>0Then
 - '參數(shù):intinet的session值,ftp地址,端口,用戶名,密碼,lService,lFlags,lContext
 - DimintinetconnAsInteger=InternetConnect(intinet,"192.168.110.152",0,"tokiwa","tokiwa",1,0,0)
 - Ifintinetconn>0Then
 - '下載某個文件到指定文件
 - DimretAsBoolean=FtpGetFile(intinetconn,"pagerror.gif","C:\itest.gif",0,0,1,0)
 - IfretThen
 - Console.WriteLine("ok!")
 - Console.ReadLine()
 - EndIf
 - InternetCloseHandle(intinetconn)
 - InternetCloseHandle
 
以上是VB.NET處理FTP的兩種方法,大家學會了嗎?
【編輯推薦】
責任編輯:田樹 
                    來源:
                    樂博網(wǎng)
 














 
 
 
 
 
 
 