VB.NET中怎么处理FTP文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
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 '该值指示不使用操作系统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里,
方法是静态的。所以没加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 '参数: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文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。