`
qzriso
  • 浏览: 242911 次
  • 性别: Icon_minigender_1
  • 来自: ph
社区版块
存档分类
最新评论

VB.NET中使用FTP下载文件的两种方法

    博客分类:
  • c#
阅读更多

.net没有专门处理FTP的类,我们可以通过调用系统自带的FTP.EXE 或者是调用win32 API中的wininet.dll来完成基本操作。希望以下的代码能为大家抛砖引玉。

方法一: 使用Ftp.exe ,通过process类来调用它。

Imports System.Diagnostics

...

  Public Sub GetFileByCallFtp()

       '定义ProcessStartInfo,Process的启动信息。

        Dim psi As New ProcessStartInfo

        'ftp.exe的路径最好放到配置文件里。

        psi.FileName = "C:\WINNT\system32\ftp.exe"

        psi.RedirectStandardInput = False

        psi.RedirectStandardOutput = True

        '该值指示不使用操作系统Shell程序启动进程。

        psi.UseShellExecute = False

        '命令集文件名.注意,路径中不能有空格.

        Dim fileName As String = "C\ftp.txt"   

        '-s:FileName表示,从文件中读取控制命令

        psi.Arguments = "-s:" + fileName

        Dim proc As Process

        proc = Process.Start(psi)

        '等待进程完成任务

        proc.WaitForExit()

        '在控制台输出结果

        Console.WriteLine(proc.StandardOutput)

        Console.ReadLine()

    End Sub


方法二,使用win32 api —— wininet.dll

首先是,api声明:

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

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

    <DllImport("wininet")> _
    Public Function InternetOpen(ByVal sAgent As String, ByVal LAccessType As Integer, ByVal sProxyName As String, _
                                  ByVal SProxyBypass As String, ByVal lFlags As Integer) As Integer
    End Function

    <DllImport("wininet")> _
    Public Function InternetConnect(ByVal hInternetSession As Integer, ByVal sServerName As String, _
                                    ByVal nServerPort As Integer, ByVal sUsername As String, _
                                    ByVal sPassword As String, ByVal lService As Integer, _
                                    ByVal lFlags As Integer, ByVal lContext As Integer) As Integer
    End Function

    <DllImport("wininet")> _
    Public Function FtpGetFile(ByVal hFtpSession As Integer, ByVal lpszRemoteFile As String, _
                               ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
                               ByVal dwFlagsAndAttributes As Integer, ByVal dwFlags As Integer, _
                               ByVal dwContext As Integer) As Boolean
    End Function

    <DllImport("wininet")> _
    Public Function InternetCloseHandle(ByVal hInet As Integer) As Integer
    End Function

    调用:

     Public Sub GetFileByCallWininetDLL()
        Try
            Dim intinet As Integer = InternetOpen(Nothing, 0, Nothing, Nothing, 0)
            If intinet > 0 Then

                '参数:intinet的session值,ftp地址,端口,用户名,密码,lService, lFlags,lContext

                Dim intinetconn As Integer = InternetConnect(intinet, "192.168.110.152", 0, "tokiwa", "tokiwa", 1, 0, 0)

                If intinetconn > 0 Then

                    '下载某个文件到指定文件

                    Dim ret As Boolean = FtpGetFile(intinetconn, "pagerror.gif", "C:\itest.gif", 0, 0, 1, 0)

                    If ret Then
                        Console.WriteLine("ok!")
                        Console.ReadLine()
                    End If
                    InternetCloseHandle(intinetconn)
                    InternetCloseHandle(intinet)
                Else
                    Console.WriteLine("can't connect!")
                    Console.ReadLine()
                End If

            Else
                Console.WriteLine("ftp wrong!")
                Console.ReadLine()
            End If
        Catch ex As Exception
            Console.WriteLine(ex.Message)
            Console.ReadLine()
        End Try

    End Sub

分享到:
评论

相关推荐

    VB.NET FTP上传与下载源码.rar

    在VB.NET编程环境中,FTP(File Transfer Protocol)是用于在网络上进行文件传输的一种协议。这个"VB.NET FTP上传与下载源码.rar"压缩包提供了一套完整的FTP客户端实现,包括了文件上传和下载的功能。下面我们将深入...

    FTPCom.ZIP_VB FTP_VB.NET f_ftp_vb.net

    在VB.NET中实现FTP功能,通常会使用System.Net.FtpWebRequest和System.Net.FtpWebResponse这两个类,它们是.NET Framework提供的FTP客户端功能的基础。以下是一些关键的知识点: 1. **连接到FTP服务器**: - 使用...

    VB.NET应用集锦例程下载

    10. **Windows Forms和WPF**:VB.NET可以创建两种类型的桌面应用程序,传统的Windows Forms和更现代的Windows Presentation Foundation (WPF)。WPF提供了更丰富的图形渲染和用户体验设计能力。 11. **.NET ...

    VB.NET网络编程指南.rar

    4. **FTP客户端编程**:如果你需要进行文件上传和下载操作,VB.NET提供了FtpWebRequest和FtpWebResponse类,允许开发者与FTP服务器交互,执行文件操作。 5. **SMTP邮件发送**:VB.NET还支持使用System.Net.Mail命名...

    VB.NET将文件上传到ftp服务器

    在VB.NET中,将文件上传到FTP服务器是一个常见的任务,主要涉及到网络编程和文件操作的知识。下面我们将详细探讨这个过程,以及如何实现这个功能。 首先,我们需要了解FTP(File Transfer Protocol),这是一种用于...

    VB代码利用FTP实现文件上传于下载代码

    在Visual Basic(VB)编程环境中,我们可以利用FTP协议来实现文件的上传和下载功能。以下将详细介绍如何在VB中利用FTP进行文件操作,并提供相关的知识点。 首先,VB中的FTP操作通常需要使用System.Net命名空间中的...

    VB.NET网络编程指南

    VB.NET提供了Json.NET和System.Xml.Linq等库,方便解析和生成这两种格式的数据。 10. **错误处理和调试**: 网络编程常遇到连接问题、超时、权限错误等,良好的错误处理和日志记录至关重要。VB.NET的Try-Catch语句...

    c#与vb.net网络通信开发实战

    《C#与VB.NET网络通信开发实战》这本书深入探讨了使用这两种.NET编程语言进行网络通信的实践技巧。网络通信是现代软件开发中的重要组成部分,无论是在客户端-服务器应用、分布式系统还是多设备协同工作中,都有着...

    VB.net150例

    12. **Windows Forms和WPF**:可能包含两种UI技术的使用和比较。 每个示例都是一个独立的小项目,通过实际运行和调试,可以帮助学习者更好地理解理论知识。同时,通过阅读和分析代码,还可以提升编程技巧和解决问题...

    FTPUtil.vb 利用Socket 实现FTP文件上传和文件下载

    FTPUtil.vb是一个VB.NET编写的实用工具,它利用Socket编程接口实现了FTP(File Transfer Protocol)文件上传和下载的功能。FTP是一种广泛应用于互联网上的协议,主要用于在客户端与服务器之间进行文件传输。Socket是...

    vb+ftp服务器管理_vb6FTP服务器_vb6_vb6ftp_

    在VB6FTP服务器的实现中,需要处理的常见问题包括错误处理、连接管理、文件上传下载的进度显示、用户权限控制等。错误处理是通过捕获并处理Winsock控件的Error事件来完成的,而连接管理涉及到连接状态的监控,如超时...

    vb.net网络编程指南

    《VB.NET网络编程指南》是一本深入探讨.NET框架下,使用Visual Basic .NET进行网络编程的实用教程。这本书旨在帮助开发者掌握如何利用VB.NET构建网络应用程序,实现数据传输、网络通信以及服务端与客户端的交互。 ...

    vb.net编写的TCP通讯源码,分客户端与服务器端。

    在提供的源码工程中,"TCPIP ClientServer Example"可能包含了两个独立的VB.NET项目:一个为客户端(Client),另一个为服务器端(Server)。客户端项目中,开发者可能创建了一个窗体,用户可以通过输入服务器地址和...

    vb ftp 下载呀 怎么不对

    FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,广泛应用于Web开发和系统管理中。在VB(Visual Basic)编程环境下,我们可以利用内置的FTP功能或者第三方库来实现FTP文件下载。标题“vb ...

    VisualBasic.NET实用编程百例

    文件操作在实际项目中经常出现,VB.NET提供了丰富的API来进行文件读写。例如,你可以使用`File.OpenRead`打开一个文件,`StreamReader`读取文件内容,或者`File.WriteAllText`写入新的文本。 网络编程也是现代应用...

    ftp 上传源码

    在这个“FTP 上传源码”中,我们可以期待找到使用VB.NET编写的FTP客户端程序的源代码,这对于学习或开发相关应用来说是非常有价值的资源。 FTP的基本概念包括两个主要角色:FTP服务器和FTP客户端。服务器端负责存储...

    VB编写FTP客户端

    首先,我们需要了解VB中的System.Net.FtpWebRequest和System.Net.FtpWebResponse类,这两个类是实现FTP功能的核心。FtpWebRequest类代表一个FTP请求,而FtpWebResponse类则表示FTP服务器对请求的响应。通过实例化...

    ASP.NET源码——FTP服务器源码(C245).zip

    FTP有两种工作模式:主动模式和被动模式,分别处理数据连接的不同方式。 2. **ASP.NET基础**:ASP.NET提供了一套完整的开发工具和框架,用于创建Web应用程序。它包括HTTP模块、HTTP处理程序、页面生命周期管理等...

    Visual Basic.NET经典案例开发教程

    GUI设计是VB.NET的一大亮点,本书会介绍Windows Forms和WPF两种UI框架,让你能够创建美观、交互性强的用户界面。同时,事件驱动编程模型也是VB.NET的核心特性之一,通过事件处理程序,可以实现用户交互的动态响应。 ...

    ASP.NET源码——Ftp在线注册管理系统源码.zip

    在ASP.NET中,开发人员可以使用C#或VB.NET等语言编写后端代码,通过控件、事件驱动和页面生命周期来创建交互式的Web页面。该系统可能使用了ASP.NET Web Forms或MVC架构,这两种架构各有特点,Web Forms提供了一种...

Global site tag (gtag.js) - Google Analytics