最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于C#實現一個簡單的FTP操作工具

 更新時間:2022年08月30日 16:33:11   作者:Csharp 小記  
這篇文章主要為大家詳細介紹了如何利用C#實現一個簡單的FTP操作工具,可以實現FTP上傳、下載、重命名、刷新、刪除功能,感興趣的可以了解一下

實現功能

實現使用FTP上傳、下載、重命名、刷新、刪除功能

開發(fā)環(huán)境

開發(fā)工具: Visual Studio 2013

.NET Framework版本:4.5

實現代碼

  /*FTP操作公共類*/
 
  private string FtpIp, FtpPort, FtpUser, FtpPwd, FtpUrl;
 
  private FTPUtil()
  {
 
  }
 
  public FTPUtil(string ftpIp, string ftpPort, string ftpUser, string ftpPwd)
  {
      FtpIp = ftpIp;
      FtpPort = ftpPort;
      FtpUser = ftpUser;
      FtpPwd = ftpPwd;
 
      FtpUrl = "ftp://" + ftpIp + ":" + ftpPort + "/";
  }
 
  private FtpWebRequest GetFtpWebRequest(string path, string method)
  {
      FtpWebRequest Ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(FtpUrl + "/" + path));
      Ftp.Credentials = new NetworkCredential(FtpUser, FtpPwd);
      Ftp.KeepAlive = false;
      Ftp.UsePassive = true;
      Ftp.Method = method;
      return Ftp;
  }
 
  /// <summary>
  /// 獲取路徑下所有文件夾
  /// </summary>
  /// <param name="dirName"></param>
  /// <returns></returns>
  public List<FileModel> GetDirs(string dirName)
  {
      return GetAllFiles(dirName).FindAll(s => s.Type == "文件夾");
  }
 
  /// <summary>
  /// 獲取路徑下所有文件
  /// </summary>
  /// <param name="dirName"></param>
  /// <returns></returns>
  public List<FileModel> GetFiles(string dirName)
  {
      return GetAllFiles(dirName).FindAll(s => s.Type == "文件");
  }
 
  /// <summary>
  /// 獲取路徑下所有項目
  /// </summary>
  /// <param name="dirName"></param>
  /// <returns></returns>
  public List<FileModel> GetAllFiles(string dirName)
  {
      List<FileModel> fileList = new List<FileModel>();
      try
      {
          FtpWebRequest Ftp = GetFtpWebRequest(dirName, WebRequestMethods.Ftp.ListDirectoryDetails);
 
          using (WebResponse response = Ftp.GetResponse())
          {
              using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
              {
                  string line = "";
                  while ((line = reader.ReadLine()) != null)
                  {
                      fileList.Add(ConvertFile(line, dirName));
                  }
              }
          }
      }
      catch (Exception ex)
      {
          throw ex;
      }
      return fileList;
  }
 
  /// <summary>
  /// FTP文件信息轉換
  /// </summary>
  /// <param name="value"></param>
  /// <param name="dirName"></param>
  /// <returns></returns>
  private FileModel ConvertFile(string value, string dirName)
  {
      string[] arr = value.Split(new string[] { " " },4, StringSplitOptions.RemoveEmptyEntries);
 
     FileModel model = new FileModel();
      model.Date = arr[0];
      model.Time = arr[1];
      if (arr[2] == "<DIR>")
      {
          model.Type = "文件夾";
          model.Size = 0;
      }
      else
      {
          model.Type = "文件";
          model.Size = Convert.ToInt64(arr[2]);
      }
      model.Name = arr[3];
      model.FullName = dirName + "/" + model.Name;
      return model;
  }
 
  /// <summary>
  /// 上傳
  /// </summary>
  /// <param name="fileName"></param>
  /// <param name="desFile"></param>
  public void Upload(string fileName, string desFile)
  {
      try
      {
          FileInfo fileInfo = new FileInfo(fileName);
 
          FtpWebRequest Ftp = GetFtpWebRequest(desFile, WebRequestMethods.Ftp.UploadFile);
          Ftp.UseBinary = true;
          Ftp.ContentLength = fileInfo.Length;
 
 
          int buffLength = 2048;
          byte[] buff = new byte[buffLength];
          int len = 0;
          using (FileStream fs = fileInfo.OpenRead())
          {
              using (Stream stream = Ftp.GetRequestStream())
              {
                  while ((len = fs.Read(buff, 0, buffLength)) != 0)
                  {
                      stream.Write(buff, 0, buffLength);
                  }
              }
          }
      }
      catch (Exception ex)
      {
          throw ex;
      }
 
 
  }
 
  /// <summary>
  /// 下載
  /// </summary>
  /// <param name="fileName"></param>
  /// <param name="desFile"></param>
  public void DownLoad(string fileName, string desFile)
  {
      try
      {
          FtpWebRequest Ftp = GetFtpWebRequest(fileName, WebRequestMethods.Ftp.DownloadFile);
          Ftp.UseBinary = true;
 
          FtpWebResponse response = (FtpWebResponse)Ftp.GetResponse();
          int buffLength = 2048;
          byte[] buff = new byte[buffLength];
          int len = 0;
          using (FileStream fs = new FileStream(desFile, FileMode.Create))
          {
              using (Stream stream = response.GetResponseStream())
              {
                  while ((len = stream.Read(buff, 0, buffLength)) != 0)
                  {
                      fs.Write(buff, 0, buffLength);
                  }
              }
          }
      }
      catch (Exception ex)
      {
          throw ex;
      }
  }
 
  /// <summary>
  /// 刪除文件
  /// </summary>
  /// <param name="fileName"></param>
  public void DeleteFile(string fileName)
  {
      try
      {
          FtpWebRequest Ftp = GetFtpWebRequest(fileName, WebRequestMethods.Ftp.DeleteFile);
 
          FtpWebResponse response = (FtpWebResponse)Ftp.GetResponse();
 
          using (Stream datastream = response.GetResponseStream())
          {
              using (StreamReader sr = new StreamReader(datastream))
              {
                  sr.ReadToEnd();
              }
          }
      }
      catch (Exception ex)
      {
          throw ex;
      }
  }
 
 
  /// <summary>
  /// 重命名
  /// </summary>
  /// <param name="fileName"></param>
  /// <param name="newName"></param>
  public void ReName(string fileName, string newName)
  {
      try
      {
          FtpWebRequest Ftp = GetFtpWebRequest(fileName, WebRequestMethods.Ftp.Rename);
          Ftp.RenameTo = newName;
          Ftp.UseBinary = true;
 
          FtpWebResponse response = (FtpWebResponse)Ftp.GetResponse();
 
          using (Stream datastream = response.GetResponseStream())
          {
              using (StreamReader sr = new StreamReader(datastream))
              {
                  sr.ReadToEnd();
              }
          }
      }
      catch (Exception ex)
      {
          throw ex;
      }
  }

實現效果

FTP 操作工具視頻演示

以上就是基于C#實現一個簡單的FTP操作工具的詳細內容,更多關于C# FTP操作工具的資料請關注腳本之家其它相關文章!

相關文章

  • C#實戰(zhàn)之備忘錄的制作詳解

    C#實戰(zhàn)之備忘錄的制作詳解

    這篇文章主要為大家介紹了如何利用C#制作一個備忘錄,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以學習一下
    2022-02-02
  • C# OpenCvSharp利用白平衡技術實現圖像修復功能

    C# OpenCvSharp利用白平衡技術實現圖像修復功能

    這篇文章主要為大家詳細介紹了C# OpenCvSharp如何利用白平衡技術實現圖像修復功能,文中的示例代碼講解詳細,希望對大家有一定的幫助
    2024-02-02
  • C#中Hashtable和Dictionary的區(qū)別

    C#中Hashtable和Dictionary的區(qū)別

    Hashtable 和 Dictionary 都是 C# 中用于存儲鍵值對的數據結構,本文主要介紹了C#中Hashtable和Dictionary的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • C#和Java互相調用的方法小結

    C#和Java互相調用的方法小結

    這篇文章主要介紹了C#和Java互相調用的方法,文中展示了如何在不同編程語言之間實現互操作,每種語言之間的互操作都有其特定的方法和工具,希望這些示例能夠幫助你更好地理解和實現跨語言調用,需要的朋友可以參考下
    2025-04-04
  • 深入Ref,Out的理解及其使用

    深入Ref,Out的理解及其使用

    本篇文章是對Ref與Out進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 基于C#中XmlReader讀取Xml的深入分析

    基于C#中XmlReader讀取Xml的深入分析

    本篇文章是對C#中XmlReader讀取Xml進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C#設計模式之策略模式

    C#設計模式之策略模式

    這篇文章介紹了C#設計模式之策略模式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Unity Shader實現新手引導遮罩鏤空效果

    Unity Shader實現新手引導遮罩鏤空效果

    這篇文章主要為大家詳細介紹了Unity Shader實現新手引導遮罩鏤空效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C#中實現Fluent Interface的三種方法

    C#中實現Fluent Interface的三種方法

    這篇文章主要介紹了C#中實現Fluent Interface的三種方法,本文講解了Fluent Interface的簡單實現、使用裝飾器模式和擴展方法實現Fluent Interface等3種實現方法,需要的朋友可以參考下
    2015-03-03
  • C#實現Bitmap類型與Byte[]類型相互轉化的示例詳解

    C#實現Bitmap類型與Byte[]類型相互轉化的示例詳解

    在C#編程中,Bitmap類型和Byte[]類型之間的相互轉化是圖像處理和數據傳輸中常見的需求,Bitmap類型表示一個位圖圖像,而Byte[]類型則是一個字節(jié)數組,本文將詳細介紹如何在這兩種類型之間進行相互轉化,需要的朋友可以參考下
    2024-07-07

最新評論

伊金霍洛旗| 布尔津县| 错那县| 习水县| 陕西省| 普定县| 新晃| 象山县| 澳门| 勐海县| 璧山县| 菏泽市| 丰都县| 湖北省| 增城市| 清新县| 沿河| 宜宾县| 新安县| 肥乡县| 宜昌市| 武隆县| 太和县| 新兴县| 云浮市| 涡阳县| 麻江县| 酒泉市| 井研县| 辛集市| 资兴市| 罗城| 余江县| 大埔区| 扎兰屯市| 石城县| 确山县| 宝鸡市| 安仁县| 上栗县| 攀枝花市|