新聞中心
熟悉VB.NET都知道,它沒(méi)有專(zhuān)門(mén)處理FTP的類(lèi),現(xiàn)在我們可以通過(guò)調(diào)用系統(tǒng)自帶的FTP.EXE或者是調(diào)用win32API中的wininet.dll兩種方法來(lái)完成基本操作。希望以下的代碼能為大家拋磚引玉。

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出豐澤免費(fèi)做網(wǎng)站回饋大家。
VB.NET處理FTP方法一:使用Ftp.exe,通過(guò)process類(lèi)來(lái)調(diào)用它。
- ImportsSystem.Diagnostics
- ...
- PublicSubGetFileByCallFtp()
- '定義ProcessStartInfo,Process的啟動(dòng)信息。
- DimpsiAsNewProcessStartInfo
- 'ftp.exe的路徑***放到配置文件里。
- psi.FileName="C:\WINNT\system32\ftp.exe"
- psi.RedirectStandardInput=False
- psi.RedirectStandardOutput=True
- '該值指示不使用操作系統(tǒng)Shell程序啟動(dòng)進(jìn)程。
- psi.UseShellExecute=False
- '命令集文件名.注意,路徑中不能有空格.
- DimfileNameAsString="C\ftp.txt"
- '-s:FileName表示,從文件中讀取控制命令
- psi.Arguments="-s:"+fileName
- DimprocAsProcess
- proc=Process.Start(psi)
- '等待進(jìn)程完成任務(wù)
- proc.WaitForExit()
- '在控制臺(tái)輸出結(jié)果
- Console.WriteLine(proc.StandardOutput)
- Console.ReadLine()
- EndSub
VB.NET處理FTP方法二,使用win32api——wininet.dll
首先是,api聲明:
因?yàn)榇藴y(cè)試程序,是VB.NETConsoleApplication所以,api聲明寫(xiě)在Module里,
方法是靜態(tài)的。所以沒(méi)加Shared關(guān)鍵字,這一點(diǎn)請(qǐng)大家注意。
("wininet")>_ - PublicFunctionInternetOpen(ByValsAgentAsString,ByValLAccessTypeAsInteger,ByValsProxyNameAsString,_
- ByValSProxyBypassAsString,ByVallFlagsAsInteger)AsInteger
- EndFunction
("wininet")>_ - PublicFunctionInternetConnect(ByValhInternetSessionAsInteger,ByValsServerNameAsString,_
- ByValnServerPortAsInteger,ByValsUsernameAsString,_
- ByValsPasswordAsString,ByVallServiceAsInteger,_
- ByVallFlagsAsInteger,ByVallContextAsInteger)AsInteger
- EndFunction
("wininet")>_ - PublicFunctionFtpGetFile(ByValhFtpSessionAsInteger,ByVallpszRemoteFileAsString,_
- ByVallpszNewFileAsString,ByValfFailIfExistsAsBoolean,_
- ByValdwFlagsAndAttributesAsInteger,ByValdwFlagsAsInteger,_
- ByValdwContextAsInteger)AsBoolean
- EndFunction
("wininet")>_ - PublicFunctionInternetCloseHandle(ByValhInetAsInteger)AsInteger
- EndFunction
調(diào)用:
- PublicSubGetFileByCallWininetDLL()
- Try
- DimintinetAsInteger=InternetOpen(Nothing,0,Nothing,Nothing,0)
- Ifintinet>0Then
- '參數(shù):intinet的session值,ftp地址,端口,用戶(hù)名,密碼,lService,lFlags,lContext
- DimintinetconnAsInteger=InternetConnect(intinet,"192.168.110.152",0,"tokiwa","tokiwa",1,0,0)
- Ifintinetconn>0Then
- '下載某個(gè)文件到指定文件
- 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的兩種方法,大家學(xué)會(huì)了嗎?
【編輯推薦】
- VB.NET實(shí)例教程對(duì)關(guān)于Array問(wèn)題的解決
- VB.NET實(shí)例教程之查詢(xún)系統(tǒng)啟動(dòng)信息案例剖析
- VB.NET實(shí)用教程之VB.NET實(shí)現(xiàn)登陸Ftp經(jīng)典方案講解
- VB.NET實(shí)用教程之抓取網(wǎng)頁(yè)亂碼解決方案
- 突破VB.NET命名空間兩大難關(guān)
本文名稱(chēng):代碼演示VB.NET處理FTP兩種方法
瀏覽路徑:http://www.dlmjj.cn/article/dhchgoc.html


咨詢(xún)
建站咨詢(xún)
