• FTP Client


      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:     }
  • 相关阅读:
    2014 非常好用的开源 Android 测试工具
    Android 开发最佳实践
    Java_综合案例DAO设计模式(重要)
    Java_Set接口
    Java_List
    Java_类集框架简介
    Java_对象序列化
    Java_打印流
    Java_IO编程
    Java_文件操作
  • 原文地址:https://www.cnblogs.com/twzy/p/5130796.html
Copyright © 2020-2023  润新知