FTP文件操作之下载文件
前面写了采用ftp上传文件,有了上传怎么能够没有下载呢?如果只有上传没有下载,那上传了也没啥用了。所以今天就跟大家一起学习学习使用ftp下载文件。
知道了怎么上传,那么下载也就变得很简单了,上传是把文件放到服务器,而下载是把文件从服务器取过来。一个是从本地读文件,然后写到服务器;另一个是从服务器读文件,然后写到本地。基本原理就是这样,下面我们看看具体的代码:
/// <summary>
/// FTP下载文件
/// </summary>
/// <param name="userId">ftp用户名</param>
/// <param name="pwd">ftp密码</param>
/// <param name="ftpPath">ftp文件路径</param>
/// <param name="filePath">下载保存路径</param>
/// <param name="fileName">ftp文件名</param>
/// <returns></returns>
public string Download(string userId, string pwd, string ftpPath, string filePath, string fileName)
{
string sRet = "下载成功!";
FtpWebRequest reqFTP;
try
{
FileStream outputStream = new FileStream(filePath + fileName, FileMode.Create); // 根据uri创建FtpWebRequest对象
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpPath + fileName)); // 指定执行什么命令
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; // 指定数据传输类型
reqFTP.UseBinary = true;
reqFTP.UsePassive = false; // ftp用户名和密码
reqFTP.Credentials = new NetworkCredential(userId, pwd); FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); // 把下载的文件写入流
Stream ftpStream = response.GetResponseStream(); long cl = response.ContentLength; // 缓冲大小设置为2kb
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize]; // 每次读文件流的2kb
readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
// 把内容从文件流写入
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
} //关闭两个流和ftp连接
ftpStream.Close();
outputStream.Close();
response.Close(); }
catch (Exception ex)
{
sRet=ex.Message;
} //返回下载结果(是否下载成功)
return sRet;
}
以上代码可以实现一个简单的ftp下载的功能,只要在需要的地方调用此方法即可。代码很简单,功能很实用。
还有很多FTP的相关操作,以后会陆续跟大家分享,敬请期待!
FTP文件操作之下载文件的更多相关文章
- ftp上传或下载文件工具类
FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...
- linux下常用FTP命令 上传下载文件【转】
1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...
- JAVASE02-Unit06: 文件操作——File 、 文件操作—— RandomAccessFile
Unit06: 文件操作--File . 文件操作-- RandomAccessFile java.io.FileFile的每一个实例是用来表示文件系统中的一个文件或目录 package day06; ...
- Unix无缓冲文件操作函数、文件信息查询
问题描述: Unix无缓冲文件操作函数.文件信息查询 问题解决: struct stat 结构体信息: 具体代码: 具体源文件:
- JAVA文件操作类和文件夹的操作代码示例
JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...
- java文件操作(普通文件以及配置文件的读写操作)
转自:java文件操作(普通文件以及配置文件的读写操作) 读取普通文件 : /** * xiangqiao123欢迎你 如果对代码有疑问可以加qq群咨询:151648295 * * 读取MyFile文 ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 使用批处理文件在FTP服务器 上传下载文件
1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt 192.168.1.1 建立一个 ...
- shell通过ftp实现上传/下载文件
直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...
随机推荐
- CSDN博文大赛赛况简报
CSDN博文大赛已经開始两周啦.如今赛况怎样呢,接下来,小编为大家揭晓. 大赛自2014年6月10日正式开赛以来.博友们踊跃发表文章,提交文章.到眼下为止,博主们提交博文1045余篇.且以上这些数据还 ...
- 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)
CodeBlocks是一个开放源代码的全功能的跨平台C/C++集成开发环境.CodeBlocks由纯粹的C++语言开发完毕,它使用了蓍名的图形界面库wxWidgets.对于追求完美的C++程序猿,再也 ...
- Android bluetooth介绍(四): a2dp connect流程分析
关键词:蓝牙blueZ A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...
- INSTALL_FAILED_MEDIA_UNAVAILABLE错误处理
问题描写叙述: 在android手机上安装apk的时候,报错例如以下: Installation error: INSTALL_FAILED_MEDIA_UNAVAILABLE Please chec ...
- cocos2d-x博客网站推荐和牛逼的教程
Cocos2d-x网站列表 CocoaChina(官方网站,不解释)www.cocoachina.com/ 泰然网(貌似最近有很多不错的文章,不过早期的文章质量一般)www.ityran.com/ C ...
- Nginx使用ngx_zeromq模块返回502错误的解决方法
/********************************************************************* * Author : Samson * Date ...
- C++封装SQLite实例<三>
前一篇博客中介绍的是怎样依据sqlite3_get_table()函数来获取一张表的内容,就是一股脑的把表中的内容所有存储起来放在一个一维数组中,这其中的规则已经介绍过了.接下来讲的是怎样依据一个SQ ...
- 站点接入QQ登录
首先引入授权js文件 <script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/op ...
- a标签的背景图在ie8下不显示的问题
突然发现临下班时候问题就多, 马上下班了被头头告知线上已经上线很久的活动现在有个兼容性问题, a标签的背景图在ie8下会有不显示的情况. 我自己找了台ie8的机器实验了一下, 发现一切正常, 但是在另 ...
- JS 在 HTML 无缝滚动
marquee图片无缝滚动先了解一下对象的几个的属性:innerHTML: 设置或获取位于对象起始和结束标签内的 HTMLscrollHeight: 获取对象的滚动高度.scrollLeft: 设置或 ...