ftp传输是一种文件传输协议,在很多时候,可以提供数据传输功能。

软件工具:visual studio 2019
win10系统

打开visual studio 2019,新建一个窗体项目。

从ftp服务器下载文件:

Dim req As FtpWebRequest = CType(WebRequest.Create("ftp://192.168.1.102/" + TextBox1.Text + ".txt"), FtpWebRequest)req.Method = WebRequestMethods.Ftp.DownloadFilereq.Credentials = New NetworkCredential("ftp服务器所在用户名", "用户密码")Dim res As FtpWebResponse = CType(req.GetResponse(), FtpWebResponse)Dim resstr As Stream = res.GetResponseStream()Dim rd As StreamReader = New StreamReader(resstr)'Console.WriteLine(rd.ReadToEnd())'Console.WriteLine($"download finish,status{res.StatusDescription }")Dim myStream As StreamDim saveFileDialog1 As New SaveFileDialog()Dim byt As Byte()byt = Encoding.UTF8.GetBytes(rd.ReadToEnd())saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"saveFileDialog1.FilterIndex = 2saveFileDialog1.DefaultExt = ".txt"saveFileDialog1.RestoreDirectory = TrueIf saveFileDialog1.ShowDialog() = DialogResult.OK ThenmyStream = saveFileDialog1.OpenFile()If (myStream IsNot Nothing) ThenmyStream.Write(byt, 0, byt.Length)                      '将下载的数据流的数据写入到文件并保存到本地myStream.Close()End IfEnd Ifrd.Close()res.Close()

上面的程序包含了下载文件及存储到本地文件,使用了vb.net的savefiledialog控件。
下载的文件名可以自己定义,在textbox1中体现。前提是知道ftp服务器中有哪些文件,可以使用目录读取功能:

Dim req As FtpWebRequest = CType(WebRequest.Create("ftp://192.168.1.102/"), FtpWebRequest)req.Method = WebRequestMethods.Ftp.ListDirectoryDetailsreq.Credentials = New NetworkCredential("ftp服务器用户名", "ftp服务器密码")Dim res As FtpWebResponse = CType(req.GetResponse(), FtpWebResponse)Dim resstr As Stream = res.GetResponseStream()Dim rd As StreamReader = New StreamReader(resstr)Dim rtext As StringDim rts As String()rtext = rd.ReadToEnd()rts = rtext.Split({"     "}, StringSplitOptions.None)' Dim rts1(rts.Length) As String' Dim rts2(rts.Length) As Integerrtb2.Clear()rtb2.AppendText(rtext + vbCrLf)

将读取的目录显示在超级文本richtext1中。
也可以从本地文件夹中将文档上传到ftp服务器中。

 Dim req As FtpWebRequest = CType(WebRequest.Create(uri), FtpWebRequest)req.Method = WebRequestMethods.Ftp.UploadFilereq.Credentials = New NetworkCredential("ftp服务器用户名", "ftp服务器用户密码")Dim filec As Byte()Using sources As StreamReader = New StreamReader(fp)filec = Encoding.UTF8.GetBytes(sources.ReadToEnd())End Usingreq.ContentLength = filec.LengthUsing ress As Stream = req.GetRequestStream()ress.Write(filec, 0, filec.Length)End UsingUsing res As FtpWebResponse = CType(req.GetResponse(), FtpWebResponse)Console.WriteLine($"upload file finish,status{res.StatusDescription }")End Using

当然,在上传文档时,可以先选择文档,可以使用vb.net的openfiledialog控件,

Dim fps As String()If OpenFileDialog1.ShowDialog = DialogResult.OK Thenfp = OpenFileDialog1.FileNameEnd Iffps = fp.Split({"\"}, StringSplitOptions.None)uri = "ftp://192.168.1.102/" + fps(4)Label2.Text = uri

完整程序:

Imports System.NetImports System.Text
Imports System.IOPublic Class Form1Dim uri As StringDim fp As StringPrivate Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadEnd SubPrivate Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.ClickDim req As FtpWebRequest = CType(WebRequest.Create("ftp://192.168.1.102/" + TextBox1.Text + ".txt"), FtpWebRequest)req.Method = WebRequestMethods.Ftp.DownloadFilereq.Credentials = New NetworkCredential("rongjv", "helanyinxue1990")Dim res As FtpWebResponse = CType(req.GetResponse(), FtpWebResponse)Dim resstr As Stream = res.GetResponseStream()Dim rd As StreamReader = New StreamReader(resstr)'Console.WriteLine(rd.ReadToEnd())'Console.WriteLine($"download finish,status{res.StatusDescription }")Dim myStream As StreamDim saveFileDialog1 As New SaveFileDialog()Dim byt As Byte()byt = Encoding.UTF8.GetBytes(rd.ReadToEnd())saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"saveFileDialog1.FilterIndex = 2saveFileDialog1.DefaultExt = ".txt"saveFileDialog1.RestoreDirectory = TrueIf saveFileDialog1.ShowDialog() = DialogResult.OK ThenmyStream = saveFileDialog1.OpenFile()If (myStream IsNot Nothing) ThenmyStream.Write(byt, 0, byt.Length)                      '将下载的数据流的数据写入到文件并保存到本地myStream.Close()End IfEnd Ifrd.Close()res.Close()End SubPrivate Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.ClickDim req As FtpWebRequest = CType(WebRequest.Create(uri), FtpWebRequest)req.Method = WebRequestMethods.Ftp.UploadFilereq.Credentials = New NetworkCredential("rongjv", "helanyinxue1990")Dim filec As Byte()Using sources As StreamReader = New StreamReader(fp)filec = Encoding.UTF8.GetBytes(sources.ReadToEnd())End Usingreq.ContentLength = filec.LengthUsing ress As Stream = req.GetRequestStream()ress.Write(filec, 0, filec.Length)End UsingUsing res As FtpWebResponse = CType(req.GetResponse(), FtpWebResponse)Console.WriteLine($"upload file finish,status{res.StatusDescription }")End UsingEnd SubPrivate Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.ClickDim fps As String()If OpenFileDialog1.ShowDialog = DialogResult.OK Thenfp = OpenFileDialog1.FileNameEnd Iffps = fp.Split({"\"}, StringSplitOptions.None)uri = "ftp://192.168.1.102/" + fps(4)Label2.Text = uriEnd SubPrivate Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.ClickDim req As FtpWebRequest = CType(WebRequest.Create("ftp://192.168.1.102/"), FtpWebRequest)req.Method = WebRequestMethods.Ftp.ListDirectoryDetailsreq.Credentials = New NetworkCredential("rongjv", "helanyinxue1990")Dim res As FtpWebResponse = CType(req.GetResponse(), FtpWebResponse)Dim resstr As Stream = res.GetResponseStream()Dim rd As StreamReader = New StreamReader(resstr)Dim rtext As StringDim rts As String()rtext = rd.ReadToEnd()rts = rtext.Split({"     "}, StringSplitOptions.None)' Dim rts1(rts.Length) As String' Dim rts2(rts.Length) As Integerrtb2.Clear()rtb2.AppendText(rtext + vbCrLf)End Sub
End Class

以上程序是在微软官方示例的基础上,加了些小的改变实现。

实例演示:

vb.net 使用ftp协议上传、下载文件(Visual Studio 2019)相关推荐

  1. 关于FileZilla连接FTP站点上传下载文件

    关于FileZilla连接FTP站点上传下载文件 浏览器搜索FileZilla官网:https://www.filezilla.cn/download 根据自己操作系统安装 安装完成之后的启动界面是这 ...

  2. 易语言客户端请求http_易语言通过Http协议上传下载文件

    易语言通过Http协议上传下载文件 2018-11-29 .版本 2 .程序集 窗口程序集1 .程序集变量 程序集_数据, 字节集 .子程序 _按钮1_被单击 信息框 (客户1.连接 ("b ...

  3. Linux 终端访问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

  4. Linux 终端訪问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

  5. ftp文件推送 linux_Linux 终端访问 FTP 及 上传下载 文件

    今天同事问我一个问题,在Linux 下访问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上.google 一下. 方 ...

  6. Java通过FTP服务器上传下载文件的方法

    本文介绍了如何使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作 ...

  7. linux ftp上传下载文件,Linux下ftp命令上传下载文件

    命令行下连接ftp服务器 方式一: 默认端口 ftp hostname 方式二: 指定端口 [ec2-user@ip-99-240-80-144 ~]$ ftp ftp> open 99.240 ...

  8. linux使用ftp传递文件,linux ftp命令:(从远程ftp服务器上传下载文件)

    FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息: -n 限制ftp的自动登录,即不使用:.n etrc文件: -d 使用调试方式: ...

  9. Perl之 用Net::FTP来上传下载文件

    2011-04-23 22:46:49 在Perl中,使用模块Net::FTP来使用FTP服务,一般的使用步骤如下: 使用Net::FTP的new方法来创建一个新的FTP对象. 使用login方法登录 ...

  10. 通过smb协议上传下载文件到nas

    方式一: 需要添加的依赖: <!--共享目录文件下载操作工具包--><dependency><groupId>com.hierynomus</groupId& ...

最新文章

  1. Django搭建简单的站点
  2. js 设计模式—工厂模式
  3. Storm-kafka源码分析之Config相关类
  4. 生僻字(通信工程版)
  5. H5 六边形消除游戏开发
  6. VC++ 读取和保存文件对话框及默认目录
  7. Java bitset转string_将java BitSet保存到DB
  8. ssh-keygen实现免密码登陆
  9. 使用c#对xml文件进行解析 功能演示 161483724
  10. Linux 探索之旅 | 第五部分第七课:Shell 实现图片展示网页
  11. 3套看漫画学python视频教程
  12. R语言ggplot2边框背景去除
  13. 法拉克机器人自动怎么调_FANUC机器人程序自动启动介绍汇总.ppt
  14. Linux操作命令分类详解 - 用户权限(三)
  15. 数值型数据的表示(1.0)
  16. 通达OA-军工行业系统解决方案
  17. 自学java,学多久可以找到工作?
  18. 天猫卖家现在做不下去了,还有后路可走吗?
  19. Spark 的键值对(pair RDD)操作,Scala实现
  20. excel 置信区间 计算_如何用excel计算95%的置信区间

热门文章

  1. 自定义百度网盘分享密码 提取码
  2. 基于springboot的房屋租赁系统
  3. 027_《Delphi Direct X 图形与游戏程序设计》
  4. 差分进化算法(Differential Evolution)概述
  5. oppo手机鸿蒙系统安装教程,oppo手机怎么刷机的步骤如下
  6. 小脚丫 LCMXO2 4000HC FPGA入门——点个灯
  7. Zcurd与Eova对比,欢迎吐槽!
  8. 大地坐标高斯/UTM投影计算工具
  9. Python 源代码代码打包成 whl 文件
  10. MAC安装JDK详细教程