1:  /// <summary>
  2:     /// FTP 管理类
  3:     /// </summary>
  4:     public class FTPManage
  5:     {
  6:         private string _Host;         //服务器地址
  7:         private int? _Port;         //端口号
  8:         private string _User;         //用户名
  9:         private string _Pass;         //密码
 10:         //public string  Path;         //具体文件路径
 11:         //public string  fileName;     //具体下载文件
 12:         //public string  SaveFilePath; //保存路径
 13: 
 14:         /// <summary>
 15:         /// 构造函数
 16:         /// </summary>
 17:         /// <param name="Host"></param>
 18:         /// <param name="Port"></param>
 19:         /// <param name="User"></param>
 20:         /// <param name="Pass"></param>
 21:         public FTPManage(string Host, int? Port, string User, string Pass)
 22:         {
 23:             this._Host = Host;
 24:             this._Port = Port;
 25:             this._User = User;
 26:             this._Pass = Pass;
 27:         }
 28: 
 29:         /// <summary>
 30:         /// 判断文件是否存在
 31:         /// </summary>
 32:         /// <returns></returns>
 33:         public string ChkIsFile(string path, string fielName)
 34:         {
 35:             string defaultStr = string.Empty;                   //默认不存在
 36:             if (string.IsNullOrEmpty(fielName)) //必须填写文件名
 37:             {
 38:                 return defaultStr = "文件名不能为空";
 39:             }
 40:             string url = string.Format("ftp://{0}/{1}/{2}", _Host, path, fielName);
 41:             var request = (FtpWebRequest)WebRequest.Create(url);
 42:             request.Credentials = new NetworkCredential(_User, _Pass);
 43:             request.Method = WebRequestMethods.Ftp.GetFileSize;
 44:             try
 45:             {
 46:                 FtpWebResponse response = (FtpWebResponse)request.GetResponse();
 47:             }
 48:             catch (WebException ex)
 49:             {
 50:                 FtpWebResponse response = (FtpWebResponse)ex.Response;
 51:                 if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
 52:                 {
 53: 
 54:                 }
 55:                 return defaultStr = "获取文件异常";
 56:             }
 57:             return defaultStr;
 58:         }
 59: 
 60:         /// <summary>
 61:         /// 下载文件
 62:         /// </summary>
 63:         /// <param name="path"></param>
 64:         /// <param name="file"></param>
 65:         /// <param name="SavePath"></param>
 66:         /// <returns></returns>
 67:         public string LodeFile(string path, string fielName, string SavePath)
 68:         {
 69:             string defaultStr = string.Empty;
 70:             if (string.IsNullOrEmpty(fielName)) //必须填写文件名
 71:             {
 72:                 return defaultStr = "文件名不能为空";
 73:             }
 74:             if (string.IsNullOrEmpty(SavePath)) //必须填写文件名
 75:             {
 76:                 return defaultStr = "文件保存路径不能为空";
 77:             }
 78:             try
 79:             {
 80:                 string url = string.Format("ftp://{0}/{1}/{2}", _Host, path, fielName);
 81:                 FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(url);
 82:                 reqFTP.UseBinary = true;
 83:                 reqFTP.Credentials = new NetworkCredential(_User, _Pass);
 84: 
 85:                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
 86:                 Stream ftpStream = response.GetResponseStream();
 87:                 long cl = response.ContentLength;
 88:                 int bufferSize = 2048;
 89:                 int readCount;
 90:                 byte[] buffer = new byte[bufferSize];
 91: 
 92:                 readCount = ftpStream.Read(buffer, 0, bufferSize);
 93:                 FileHelper.IsDirectory(SavePath);
 94:                 FileStream outputStream = new FileStream(SavePath + "\\" + fielName, FileMode.Create);
 95:                 while (readCount > 0)
 96:                 {
 97:                     outputStream.Write(buffer, 0, readCount);
 98:                     readCount = ftpStream.Read(buffer, 0, bufferSize);
 99:                 }
100:                 ftpStream.Close();
101:                 outputStream.Close();
102:                 response.Close();
103:             }
104:             catch (Exception ex)
105:             {
106:                 defaultStr = "文件下载异常:" + ex.Message;
107:             }
108:             return defaultStr;
109:         }
110: 
111:         /// <summary>
112:         /// 获取指定目录文件列表
113:         /// </summary>
114:         /// <returns></returns>
115:         public string[] GetFileList(string Path)
116:         {
117:             try
118:             {
119:                 string url = string.Format("ftp://{0}/{1}", _Host, Path);
120:                 //获得FTP文件上的文件列表 
121:                 FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
122:                 request.Method = WebRequestMethods.Ftp.ListDirectory;
123:                 request.Credentials = new NetworkCredential(_User, _Pass);
124: 
125:                 FtpWebResponse response = (FtpWebResponse)request.GetResponse();
126:                 Stream stream = response.GetResponseStream();
127: 
128:                 StreamReader reader = new StreamReader(stream);
129:                 List<string> files = new List<string>();
130: 
131:                 while (!reader.EndOfStream)
132:                 {
133:                     string file = reader.ReadLine();
134:                     files.Add(file);
135:                 }
136: 
137:                 reader.Close();
138:                 stream.Close();
139: 
140:                 return files.ToArray();
141:             }
142:             catch { return new string[0]; }
143:         }
144: 
145:     }

FTP Client的更多相关文章

  1. Ubuntu Filezilla FTP Client 安装

    /************************************************************************************* * Ubuntu File ...

  2. 使用 FileZilla FTP Client连接Vsftpd在执行LIST命令后提示连接超时

    使用 FileZilla FTP Client 连接 Vsftpd在执行LIST命令后提示连接超时. vi /etc/vsftpd/vsftpd.conf 添加: #开启被动模式 pasv_enabl ...

  3. csharp: FTP Client Library using System.Net.FtpWebRequest

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  4. C# Ftp Client 基本操作

    C# Ftp Client 上传.下载与删除 简单介绍一下Ftp Client 上传.下载与删除,这是目前比较常用的命令,各个方法其实都差不多,重点是了解Ftp命令协议. 1.建立连接 public ...

  5. FileZilla FTP Client

    FileZilla Client是一个快速.实用.多功能和界面直观的免费的FTP客户端,虽然它是免费软件,可功能却一点也不含糊,比起那些共享软件来有过之而无不及,在新的版本中作者改进了手动下载的界面和 ...

  6. csharp: FTP Client Library using System.Net.FtpClient and FluentFTP,测试中存在的BUG修正

    https://netftp.codeplex.com/ /// <summary> /// Gets a file listing from the server. Each FtpLi ...

  7. csharp:FTP Client Library using FtpWebRequest or Sockets

    https://netftp.codeplex.com/SourceControl/latest http://ftplib.codeplex.com/ https://www.codeproject ...

  8. 【FileZilla FTP Client】文件与服务器操作客户端

    跨平台的FTP,FTPS和SFTP客户端 可以断点续传进行上传.下载(需要服务器支持). 自定义命令. 可进行站点管理.

  9. Spring Boot Ftp Client 客户端示例支持断点续传

    本章介绍 Spring Boot 整合 Ftpclient 的示例,支持断点续传 本项目源码下载 1 新建 Spring Boot Maven 示例工程项目 注意:是用来 IDEA 开发工具 File ...

随机推荐

  1. hdu4126Genghis Khan the ConquerorGenghis Khan the Conqueror(MST+树形DP)

    题目请戳这里 题目大意:给n个点,m条边,每条边权值c,现在要使这n个点连通.现在已知某条边要发生突变,再给q个三元组,每个三元组(a,b,c),(a,b)表示图中可能发生突变的边,该边一定是图中的边 ...

  2. Hadoop Failed to set permissions of path

    在Eclipse里面写了个測试程序:把HDFS中的数据批量导入到HBase中 写好后,在本地測试遇到了例如以下问题: 14/04/21 16:49:53 WARN util.NativeCodeLoa ...

  3. android 中文件加密 解密 算法实战

    现在项目里面有一个需求,本项目里面下载的视频和文档都不允许通过其他的播放器播放,在培训机构里面这样的需求很多.防止有人交一份钱,把所有的课件就拷给了别人.这样的事情培训机构肯定是不愿意的.现在我项目里 ...

  4. SqlBulkCopy使用心得 (大量数据导入)

    文章转载原地址:http://www.cnblogs.com/mobydick/archive/2011/08/28/2155983.html 最近做的项目由于之前的设计人员懒省事,不按照范式来,将一 ...

  5. Asp.Net EF Code First 简单入门

    今天在上班期间花了点时间学习了一下微软的EntityFramework Code First技术,这篇文章只是简单的入门,不多废话,下面直入主题. 一.首先添加一个解决方案,接着添加一个web网站,D ...

  6. centos打开3306端口

    centos默认是关闭了3306端口的,外网通过3306端口不能访问数据库,这时需呀打开3306端口1.打开端口: /sbin/iptables -I INPUT -p tcp --dport 330 ...

  7. 洛谷 P3392 涂国旗

    P3392 涂国旗 题目描述 某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗.(毛熊:阿嚏——) 从最上方若干行(>=1)的格子全部是白色的. 接下来若干行(> ...

  8. 自定义滚动条 niceScroll 配置参数

    配置参数 当调用“niceScroll”你可以传递一些参数来定制视觉方面: cursorcolor - 十六进制改变光标颜色,默认值是“#000000” cursoropacitymin - 改变不透 ...

  9. 在Wince模拟器接入网络的方法

    我第一次使用wince调用WCF服务的时候总是报错,找了半原因发现程序部署在模拟器中,而模拟器没有连接到网络,所以无法连接到WCF服务器. 以下是wince接入网络的方法:        1.点击模拟 ...

  10. Asp.Net MVC3.0 Partial RenderPartial Action RenderAction 区别和用法

    本人写的博文不多,专业知识不强,以下纯属于个人笔记.如有不对,还请各路大拿,拍砖指导,谢谢! 区别: 1.Partial 与 RenderPartial 两个方法性质基本一样,只是把一个静态用户控件给 ...