1.无密码访问ftp地址下载jpg、pdf、文件夹

    /// <summary>/// 无密码访问ftp地址/// </summary>/// <param name="ftpPath">ftp://196.168.1.1/文件名字.jpg/.pdf等</param>/// <param name="filePath">D:\\新建文件夹\\</param>/// <param name="fileName">文件名字.jpg</param>public void Download01(string ftpPath, string filePath, string fileName){string StrCG = "下载成功!";//文件传输协议FtpWebRequest RequestFTP;try{//创建流文件FileStream CreateStream = new FileStream(filePath + fileName, FileMode.Create);//根据URI创建FtpWebRequest对象   RequestFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpPath));//设置请求的方法是FTP文件下载RequestFTP.Method = WebRequestMethods.Ftp.DownloadFile;//指定数据传输类型  RequestFTP.UseBinary = true;RequestFTP.UsePassive = false;//获取一个请求响应对象FtpWebResponse ResponseXY = (FtpWebResponse)RequestFTP.GetResponse();//把从ftp下载的文件写入流Stream ftpStream = ResponseXY.GetResponseStream();long cl = ResponseXY.ContentLength;//缓冲文件大小设置为2kb  int bufferSize = 2048;int readCount;byte[] buffer = new byte[bufferSize];//每次读取文件流的2kb  readCount = ftpStream.Read(buffer, 0, bufferSize);while (readCount > 0){//把内容从文件流写入   CreateStream.Write(buffer, 0, readCount);readCount = ftpStream.Read(buffer, 0, bufferSize);}ftpStream.Close();//把从ftp下载的文件写入流关闭CreateStream.Close();//把内容从文件流写入关闭   ResponseXY.Close();//ftp连接关闭}catch (Exception ex){LogInfo("报错:" + ex);StrCG = ex.Message;}}

2.有密码访问ftp地址下载jpg、pdf、文件夹

    /// <summary>/// 有密码访问ftp地址/// </summary>/// <param name="ftpfilepath">ftp://196.168.1.1/文件名字.jpg/.pdf等</param>/// <param name="filePath">D:\\新建文件夹\\</param>/// <param name="fileName">文件名字.jpg</param>/// <param name="FTPUSERNAME">用户名字:123</param>/// <param name="FTPPASSWORD">用户密码:123</param>/// <returns></returns>public bool Download02(string ftpfilepath, string filePath, string fileName, string FTPUSERNAME = "", string FTPPASSWORD = ""){try{filePath = filePath.Replace("我的电脑\\", "");LogInfo("filePath" + filePath);//返回指定路径的文件名和扩展名。eg:String onlyFileName = Path.GetFileName(fileName);string newFileName = filePath + onlyFileName;if (File.Exists(newFileName)){//如果本地存在这个文件删除                 File.Delete(newFileName);}ftpfilepath = ftpfilepath.Replace("\\", "/");string url = ftpfilepath;//创建一个与FTP服务器联系的FtpWebRequest对象FtpWebRequest RequestFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));//指定数据传输类型  RequestFtp.UseBinary = true;连接登录FTP服务器RequestFtp.Credentials = new NetworkCredential(FTPUSERNAME, FTPPASSWORD);//获取一个请求响应对象FtpWebResponse ResponseFtp = (FtpWebResponse)RequestFtp.GetResponse();//把从ftp下载的文件写入流Stream ftpStream = ResponseFtp.GetResponseStream();long cl = ResponseFtp.ContentLength;//缓冲文件大小设置为2kbint bufferSize = 2048;int readCount;byte[] buffer = new byte[bufferSize];readCount = ftpStream.Read(buffer, 0, bufferSize);//创建一个文件流FileStream outputStream = new FileStream(newFileName, FileMode.Create);while (readCount > 0){outputStream.Write(buffer, 0, readCount);readCount = ftpStream.Read(buffer, 0, bufferSize);}ftpStream.Close();outputStream.Close();ResponseFtp.Close();return true;}catch (Exception ex){LogInfo("报错原因:" + ex);return false;}}

3.文件夹下载(没有试过不行的话从新查个吧)

   /// <summary>/// 下载ftp文件/// </summary>/// <param name="ftpURI">ftp地址eg:ftp://196.168.1.1/新建文件夹</param>/// <param name="filepath">本地存放目录</param>/// <param name="ftpUserID">用户名</param>/// <param name="ftpPassword">密码</param>public void DownLoadFileFromFTP(string ftpURI, string filepath, string ftpUserID="",string ftpPassword=""){string LocalFileExistsOperation = "write";Uri uri = new Uri(ftpURI);string FileName = Path.GetFullPath(ftpURI) + Path.DirectorySeparatorChar.ToString() + Path.GetFileName(uri.LocalPath);//创建一个文件流FileStream fs = null;Stream responseStream = null;try{//创建一个与FTP服务器联系的FtpWebRequest对象FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);//设置请求的方法是FTP文件下载request.Method = WebRequestMethods.Ftp.DownloadFile;//连接登录FTP服务器request.Credentials = new NetworkCredential(ftpUserID, ftpPassword);//获取一个请求响应对象FtpWebResponse response = (FtpWebResponse)request.GetResponse();//获取请求的响应流responseStream = response.GetResponseStream();//判断本地文件是否存在,如果存在,则打开和重写本地文件if (File.Exists(FileName)){if (LocalFileExistsOperation == "write"){fs = File.Open(FileName, FileMode.Open, FileAccess.ReadWrite);}}//判断本地文件是否存在,如果不存在,则创建本地文件else{fs = File.Create(FileName);}if (fs != null){int buffer_count = 65536;byte[] buffer = new byte[buffer_count];int size = 0;while ((size = responseStream.Read(buffer, 0, buffer_count)) > 0){fs.Write(buffer, 0, size);}fs.Flush();fs.Close();responseStream.Close();}}finally{if (fs != null)fs.Close();if (responseStream != null)responseStream.Close();}}

C# 访问ftp地址下载jpg、pdf、文件夹相关推荐

  1. python下载url链接_使用Python从url地址下载所有pdf文件

    我需要找到一种方法来下载给定url中的所有pdf文件,然后我找到了一个脚本,该脚本可能--我还没有测试过--完成了这个任务:import urllib.parse import urllib2 imp ...

  2. VB FTP操作类(可上传、下载、创建文件夹等等)

    可实现FTP上传下载,建文件夹等功能,从网上找了一个类,对其进行修改和功能补充,正常使用,非常方便. 切记在使用FtpFindFirstFile 函数查找相应的文件或文件夹后,要使用InternetC ...

  3. python根据url下载数据_利用Python如何实现根据URL地址下载并保存文件至对应目录...

    利用Python如何实现根据URL地址下载并保存文件至对应目录 发布时间:2020-11-16 14:23:11 来源:亿速云 阅读:58 作者:Leah 这篇文章将为大家详细讲解有关利用Python ...

  4. Qt FTP地址下载中文乱码问题

    Qt FTP地址下载中文乱码问题 前言 一.为什么乱码? 二.解决办法 1.使用QUrl的编码和解码函数 2.使用时遇到的其他问题 总结 前言 最近在做Qt项目,使用FTP下载,需要存储ftp地址,f ...

  5. python 实现endnote下载的pdf文件的整理

    endnote下载的文件放在一个pdf文件夹中的一堆乱序数字的文件夹中如图 现在老板要求要把下载下来的文件发给他, 但一个个拷出来感觉有些蛋疼,于是就想到了python,通过查阅资料,完美实现了这个整 ...

  6. ftp服务器怎么看不到文件夹,ftp服务器找不到文件夹

    ftp服务器找不到文件夹 内容精选 换一换 本章节介绍如何将下载的证书安装到Apache服务器上.安装好证书后,您的Web服务器将能支持SSL通信,从而保证您Web服务器的通信安全.如果证书安装过程中 ...

  7. Qt之QFtp 在客户端实现文件上传、下载、新建文件夹、重命名、删除和刷新等功能

    简述 本来是打算用新的类QNetworkAccessManager实现的客户端的文件上传.下载.新建文件夹.重命名.删除和刷新等功能,但是QNetworkAccessManager没有提供原本在QFt ...

  8. ftp 服务器新建文件夹,ftp服务器路径下新建文件夹

    ftp服务器路径下新建文件夹 内容精选 换一换 单击"源码迁移"后面的,打开如图1所示界面,参数描述如表1所示.配置参数后单击"开始分析".以下内容中的&quo ...

  9. python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小

    python 实现统计ftp服务器指定目录下文件夹数目.文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏. 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类 ...

最新文章

  1. 【Web全栈课程5】jsonp简单使用
  2. 无法relay信件处理一例
  3. 今天刚学的idea的debug打断点,Ctrl+u进入Evaluate Expression界面,调试程序事半功倍!
  4. CommonDialog控件
  5. 使用aop解决事务问题(xml版)
  6. 高文院士:从“乡村教师”到人工智能掌舵者的40年科研路
  7. 如果去掉数学前后的空格_数学家们是怎么玩趣味拼图游戏的?
  8. 你真的搞懂ES6模块的导入导出规则了吗
  9. mcc mnc 运营商对应表_在南非怎么选手机的移动电话运营商?
  10. 美团一面:如何优化慢SQL?
  11. 创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息创建类Student实现Person接口
  12. Mac环境下反编译Apk(入门)
  13. Fabric环境配置
  14. 怎么把多个excel表格合成一个_「Excel」合并多个表格,可以快速搞定啦
  15. 通过锂电池原理来设计BMS系统
  16. 路由器和三层交换机的基本实验操作
  17. 见证一张CAD图如何蜕变成一个高大上的三维地形模型(一)
  18. 国考省考行测:问题型材料主旨分析,有问题有对策,主旨是对策,有问题无对策,要合理引申对策
  19. 64位操作系统安装——Linux(Ubuntu 16.04)+Windows7+iNode
  20. C++ 风格与技术 FAQ(中文版)

热门文章

  1. 阿里90后运营的工作总结,细致而深刻!
  2. 2019 码云 最流行的开源项目 TOP 50
  3. java星座测试需求分析_如何进行软件测试需求分析
  4. 2020微信小微商户、微信支付商业版签约商户流程
  5. 《python编程从入门到实践》第2版 第四章课后练习
  6. [Python爬虫] 九、机器视觉与机器图像识别之Tesseract
  7. Java WebSocket 基础 建立端点
  8. 无法更新计算机配置系统时间,电脑怎么设置系统时间自动更新
  9. 安装texlive时出现No such file or directory问题
  10. 开源视频插帧软件DAIN使用教程