【12】FtpWebRequest上传下载
来源:互联网 发布:软件安装管家 编辑:程序博客网 时间:2024/05/22 15:11
下载文件
/// <summary> /// 下载文件 /// </summary> /// <param name="filename"></param> private static void DownLoadFile(string filename) { FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://" + FtpAddress + "/" + filename); req.Method = WebRequestMethods.Ftp.DownloadFile; req.UseBinary = true; req.UsePassive = true; req.Credentials = new NetworkCredential(FtpUid, FtpPwd); try { using (FtpWebResponse res = (FtpWebResponse)req.GetResponse()) { string localfile = Path.Combine(LocalPath, filename); FileStream fs = new FileStream(localfile, FileMode.Create, FileAccess.Write); int buffer = 1024; //1K缓冲 byte[] b = new byte[buffer]; int i = 0; Stream stream = res.GetResponseStream(); while ((i = stream.Read(b, 0, buffer)) > 0) { fs.Write(b, 0, i); } } Console.WriteLine(filename + " download!"); Log(filename + "下载成功"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Log(ex.ToString()); } finally { } }
获取文件列表
/// <summary> /// 获取FTP文件列表 /// </summary> /// <returns></returns> private static List<String> GetFileList() { List<string> list = new List<string>(); FtpWebRequest req = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + FtpAddress + FtpRemotePath)); req.Credentials = new NetworkCredential(FtpUid, FtpPwd); req.Method = WebRequestMethods.Ftp.ListDirectory; req.UseBinary = true; req.UsePassive = true; try { using (FtpWebResponse res = (FtpWebResponse)req.GetResponse()) { using (StreamReader sr = new StreamReader(res.GetResponseStream())) { string s; while ((s = sr.ReadLine()) != null) { list.Add(s); } } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); Log("下载文件列表失败:"); Log(ex.ToString()); } return list; }
上传文件
private static void UploadFile(string localFile) { FileInfo fi = new FileInfo(localFile); FileStream fs = fi.OpenRead(); long length = fs.Length; FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://" + FtpAddress + FtpRemotePath + fi.Name); req.Credentials = new NetworkCredential(FtpUid, FtpPwd); req.Method = WebRequestMethods.Ftp.UploadFile; req.UseBinary = true; req.ContentLength = length; req.Timeout = 10 * 1000; try { Stream stream = req.GetRequestStream(); int BufferLength = 2048; //2K byte[] b = new byte[BufferLength]; int i; while ((i = fs.Read(b, 0, BufferLength)) > 0) { stream.Write(b, 0, i); } stream.Close(); stream.Dispose(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
阅读全文
0 0
- 【12】FtpWebRequest上传下载
- FTP(FtpWebRequest/FtpWebResponse) 上传下载
- FtpWebRequest 类
- FtpWebRequest的常用操作
- 多线程下载(FtpWebRequest)
- 试验FtpWebRequest的断点续传
- FtpWebRequest的常用操作
- FtpWebRequest的常用操作
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- 上传下载
- python中使用原生sql操作数据库
- android文件操作相关的工具
- 多个input输入框 限制每个输入框输入一位 输入完成自动获取下一个input焦点
- 基于lnmp 一键安装 添加 Nginx 的模块(module)
- Java 类与对象
- 【12】FtpWebRequest上传下载
- eclipse的控制台显示有问题,关闭Limit console output
- 保留道路
- C++文件与文件夹操作(3)--文件与文件夹复制
- 只有三星手机内存溢出oom
- 黑客六道:你需要是自己写代码——致正在学习的朋友们
- HDU 1370 Biorhythms(中国剩余定理 + 拓展欧几里得)
- 20170821
- 界面懒加载优化问题