c#开发-实现从FTP服务器上下载文件夹中的数据
来源:互联网 发布:命令行设置ip地址和mac 编辑:程序博客网 时间:2024/06/07 14:20
从FTP服务器上下载文件到本地首先需要确定FTP服务器可以连接,其实现代码如下:
/// <summary> /// 单个文件下载方法 /// </summary> /// <param name="adss">保存文件的本地路径</param> /// <param name="ftpadss">下载文件的FTP路径</param> public void download(string adss, string ftpadss) { //FileMode常数确定如何打开或创建文件,指定操作系统应创建新文件。 //FileMode.Create如果文件已存在,它将被改写 FileStream outputStream = new FileStream(adss, FileMode.Create); FtpWebRequest downRequest = (FtpWebRequest)WebRequest.Create(new Uri(ftpadss)); //设置要发送到 FTP 服务器的命令 downRequest.Method = WebRequestMethods.Ftp.DownloadFile; FtpWebResponse response = (FtpWebResponse)downRequest.GetResponse(); Stream ftpStream = response.GetResponseStream(); long cl = response.ContentLength; int bufferSize = 2048; int readCount; byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount > 0) { outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer, 0, bufferSize); } ftpStream.Close(); outputStream.Close(); response.Close(); } /// </summary> /// <param name="ftpads">FTP地址路径</param> /// <param name="name">我们所选择的文件或者文件夹名字</param> /// <param name="type">要发送到FTP服务器的命令</param> /// <returns></returns> public string[] ftp(string ftpads, string name, string type) { WebResponse webresp = null; StreamReader ftpFileListReader = null; FtpWebRequest ftpRequest = null; try { ftpRequest = (FtpWebRequest)WebRequest.Create(new Uri(ftpads + "/" + name)); ftpRequest.Method = type; webresp = ftpRequest.GetResponse(); ftpFileListReader = new StreamReader(webresp.GetResponseStream(), Encoding.Default); } catch (Exception ex) { ex.ToString(); } StringBuilder str = new StringBuilder(); string line = ftpFileListReader.ReadLine(); while (line != null) { str.Append(line); str.Append("/n"); line = ftpFileListReader.ReadLine(); } string[] fen = str.ToString().Split(new char[2] { '/', 'n' }); return fen; } /// <summary> /// 下载方法 /// </summary> /// <param name="ftpads">FTP路径</param> /// <param name="name">需要下载文件路径</param> /// <param name="Myads">保存的本地路径</param> public void downftp(string ftpads, string name, string Myads) { string downloadDir = Myads + "\\" + name; string ftpdir = ftpads + "\\" + name; string[] fullname = ftp(ftpads, name, WebRequestMethods.Ftp.ListDirectoryDetails); //判断是否为单个文件 if (fullname.Length <= 2) { if (fullname[fullname.Length - 1] == "") { download(downloadDir + "/" + name, ftpads + "/" + name + "/" + name); } } else { string[] onlyname = ftp(ftpads, name, WebRequestMethods.Ftp.ListDirectory); if (!Directory.Exists(downloadDir)) { Directory.CreateDirectory(downloadDir); } foreach (string names in fullname) { //判断是否具有文件夹标识<DIR> if (names.Contains("<DIR>")) { string olname = names.Split(new string[] { "<DIR>" }, StringSplitOptions.None)[1].Trim(); downftp(ftpdir, "//" + olname, downloadDir); } else { if (!string.IsNullOrEmpty(names)) { foreach (string onlynames in onlyname) { if (!string.IsNullOrEmpty(onlynames)) { if (names.Contains(" " + onlynames)) { download(downloadDir + "/" + onlynames, ftpads + "/" + name + "/" + onlynames); break; } } } } } } } }
添加的引用为:
using System;using System.Text;using System.IO;using System.Net;
代码已经测试通过,可以实现,下载速度大致为12M/s.
0 0
- c#开发-实现从FTP服务器上下载文件夹中的数据
- C#实现从FTP服务器下载压缩文件并解压.
- C#实现开发windows服务实现自动从FTP服务器下载文件(自行设置分/时执行)
- C# 实现从服务器下载
- c# 实现从服务器下载
- C# 下载FTP服务器一个文件夹内的所有文件
- C#学习笔记之从FTP服务器上传和下载数据(一)
- C#学习笔记之从FTP服务器上传和下载数据(二)
- C# 遍历FTP文件夹/下载
- 通过python下载FTP上的文件夹的实现代码
- loadrunner脚本,从FTP服务器上上传和下载文件
- JAVA中的FtpClient与FTPClient,并实现jsp页面下载ftp服务器上的文件
- C# 从FTP服务器下载文件到本地
- socket实现从http服务器上下载
- 从FTP服务器下载文件
- 从ftp服务器下载文件
- Libcurl 从FTP服务器下载
- C# FTP 文件 文件夹操作 上传 下载
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
- javascript中组合使用构造函数模式和原型模式创建对象
- LLDP协议认识
- poj2406--kmp next的应用
- VC++ replace和replaceAll两个方法的区别
- c#开发-实现从FTP服务器上下载文件夹中的数据
- spring3之后各jar包相着依赖关系
- ab压力测试
- Mybatis3.2和Spring3.x整合----Mybtis3.x+Spring3.x
- Fresco图片库的基本使用
- 正则表达式中的?和?:
- shell for循环 和 rsync同步 实例
- POST中文乱码解决方案
- 有关JAVA语言的安卓手机软件开发的分析