博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
阅读量:6581 次
发布时间:2019-06-24

本文共 11314 字,大约阅读时间需要 37 分钟。

  1. 转自:http://blog.csdn.net/hejialin666/article/details/3522815
  2. 1 using System;  2 using System.Collections.Generic;  3 using System.Text;  4 using System.Net;  5 using System.Data;  6 using System.IO;  7 using System.ComponentModel;  8 namespace Common  9 { 10     public class FTPClient 11     { 12         private string ftpServerIP = String.Empty; 13         private string ftpUser = String.Empty; 14         private string ftpPassword = String.Empty; 15         private string ftpRootURL = String.Empty;         16         public FTPClient(string url, string userid,string password) 17         { 18             this.ftpServerIP = ftp的IP地址; 19             this.ftpUser = 用户名; 20             this.ftpPassword = 密码; 21             this.ftpRootURL = "ftp://" + url + "/"; 22         } 23         ///  24         /// 上传 25         ///  26         /// 本地文件绝对路径 27         /// 上传到ftp的路径 28         /// 上传到ftp的文件名 29         public bool fileUpload(FileInfo localFile, string ftpPath, string ftpFileName) 30         { 31             bool success = false; 32             FtpWebRequest ftpWebRequest = null; 33             FileStream localFileStream = null; 34             Stream requestStream = null; 35             try 36             { 37                 string uri = ftpRootURL + ftpPath + ftpFileName; 38                 ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri)); 39                 ftpWebRequest.Credentials = new NetworkCredential(ftpUser, ftpPassword); 40                 ftpWebRequest.UseBinary = true; 41                 ftpWebRequest.KeepAlive = false; 42                 ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile; 43                 ftpWebRequest.ContentLength = localFile.Length; 44                 int buffLength = 2048; 45                 byte[] buff = new byte[buffLength]; 46                 int contentLen; 47                 localFileStream = localFile.OpenRead(); 48                 requestStream = ftpWebRequest.GetRequestStream(); 49                 contentLen = localFileStream.Read(buff, 0, buffLength); 50                 while (contentLen != 0) 51                 { 52                     requestStream.Write(buff, 0, contentLen); 53                     contentLen = localFileStream.Read(buff, 0, buffLength); 54                 } 55                 success = true; 56             } 57             catch (Exception) 58             { 59                 success = false; 60             } 61             finally 62             {  63                 if (requestStream != null) 64                 { 65                     requestStream.Close(); 66                 } 67                 if (localFileStream != null) 68                 { 69                     localFileStream.Close(); 70                 } 71             } 72             return success; 73         } 74         ///  75         /// 上传文件 76         ///  77         /// 本地文件地址(没有文件名) 78         /// 本地文件名 79         /// 上传到ftp的路径 80         /// 上传到ftp的文件名 81         public bool fileUpload(string localPath, string localFileName, string ftpPath, string ftpFileName) 82         { 83             bool success = false; 84             try 85             { 86                 FileInfo localFile = new FileInfo(localPath + localFileName); 87                 if (localFile.Exists) 88                 { 89                     success = fileUpload(localFile, ftpPath, ftpFileName); 90                 } 91                 else 92                 { 93                     success = false; 94                 } 95             } 96             catch (Exception) 97             { 98                 success = false; 99             }100             return success;101         }102         /// 103         /// 下载文件104         /// 105         /// 本地文件地址(没有文件名)106         /// 本地文件名107         /// 下载的ftp的路径108         /// 下载的ftp的文件名109         public bool fileDownload(string localPath, string localFileName, string ftpPath, string ftpFileName)110         {111             bool success = false;112             FtpWebRequest ftpWebRequest = null;113             FtpWebResponse ftpWebResponse = null;114             Stream ftpResponseStream = null;115             FileStream outputStream = null;116             try117             {118                 outputStream = new FileStream(localPath + localFileName, FileMode.Create);119                 string uri = ftpRootURL + ftpPath + ftpFileName;120                 ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));121                 ftpWebRequest.Credentials = new NetworkCredential(ftpUser, ftpPassword);122                 ftpWebRequest.UseBinary = true;123                 ftpWebRequest.Method = WebRequestMethods.Ftp.DownloadFile;124                 ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();125                 ftpResponseStream = ftpWebResponse.GetResponseStream();126                 long contentLength = ftpWebResponse.ContentLength;127                 int bufferSize = 2048;128                 byte[] buffer = new byte[bufferSize];129                 int readCount;130                 readCount = ftpResponseStream.Read(buffer, 0, bufferSize);131                 while (readCount > 0)132                 {133                     outputStream.Write(buffer, 0, readCount);134                     readCount = ftpResponseStream.Read(buffer, 0, bufferSize);135                 }136                 success = true;137             }138             catch (Exception)139             {140                 success = false;141             }142             finally143             {144                 if (outputStream != null)145                 {146                     outputStream.Close();147                 }148                 if (ftpResponseStream != null)149                 {150                     ftpResponseStream.Close();151                 }152                 if (ftpWebResponse != null)153                 {154                     ftpWebResponse.Close();155                 }156             }157             return success;158         }159         /// 160         /// 重命名161         /// 162         /// ftp文件路径163         /// 164         /// 165         public bool fileRename(string ftpPath, string currentFileName, string newFileName)166         {167             bool success = false;168             FtpWebRequest ftpWebRequest = null;169             FtpWebResponse ftpWebResponse = null;170             Stream ftpResponseStream = null;171             try172             {173                 string uri = ftpRootURL + ftpPath + currentFileName;174                 ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));175                 ftpWebRequest.Credentials = new NetworkCredential(ftpUser, ftpPassword);176                 ftpWebRequest.UseBinary = true;177                 ftpWebRequest.Method = WebRequestMethods.Ftp.Rename;178                 ftpWebRequest.RenameTo = newFileName;179                 180                 ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();181                 ftpResponseStream = ftpWebResponse.GetResponseStream();182                183             }184             catch (Exception)185             {186                 success = false;187             }188             finally189             {190                 if (ftpResponseStream != null)191                 {192                     ftpResponseStream.Close();193                 }194                 if (ftpWebResponse != null)195                 {196                     ftpWebResponse.Close();197                 }198             }199             return success;200         }201         /// 202         /// 消除文件203         /// 204         /// 205         public bool fileDelete(string ftpPath, string ftpName)206         {207             bool success = false;208             FtpWebRequest ftpWebRequest = null;209             FtpWebResponse ftpWebResponse = null;210             Stream ftpResponseStream = null;211             StreamReader streamReader = null;212             try213             {214                 string uri = ftpRootURL + ftpPath + ftpName;215                 ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));216                 ftpWebRequest.Credentials = new NetworkCredential(ftpUser, ftpPassword);217                 ftpWebRequest.KeepAlive = false;218                 ftpWebRequest.Method = WebRequestMethods.Ftp.DeleteFile;219                 ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();220                 long size = ftpWebResponse.ContentLength;221                 ftpResponseStream = ftpWebResponse.GetResponseStream();222                 streamReader = new StreamReader(ftpResponseStream);223                 string result = String.Empty;224                 result = streamReader.ReadToEnd();225                226                 success = true;227             }228             catch (Exception)229             {230                 success = false;231             }232             finally233             {234                 if (streamReader != null)235                 {236                     streamReader.Close();237                 }238                 if (ftpResponseStream != null)239                 {240                     ftpResponseStream.Close();241                 }242                 if (ftpWebResponse != null)243                 {244                     ftpWebResponse.Close();245                 }246             }247             return success;248         }249         /// 250         /// 文件存在检查251         /// 252         /// 253         /// 254         /// 
    255 public bool fileCheckExist(string ftpPath, string ftpName)256 {257 bool success = false;258 FtpWebRequest ftpWebRequest = null;259 WebResponse webResponse = null; 260 StreamReader reader = null;261 try262 {263 string url = ftpRootURL + ftpPath; 264 265 ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));266 ftpWebRequest.Credentials = new NetworkCredential(ftpUser, ftpPassword);267 ftpWebRequest.Method = WebRequestMethods.Ftp.ListDirectory;268 ftpWebRequest.KeepAlive = false;269 webResponse = ftpWebRequest.GetResponse();270 reader = new StreamReader(webResponse.GetResponseStream());271 string line = reader.ReadLine();272 while (line != null)273 {274 if (line == ftpName)275 {276 success = true;277 break;278 }279 line = reader.ReadLine();280 }281 }282 catch (Exception)283 {284 success = false;285 }286 finally287 {288 if (reader != null)289 {290 reader.Close();291 }292 if (webResponse != null)293 {294 webResponse.Close();295 }296 }297 return success;298 }299 }300 }
    View Code

     

转载于:https://www.cnblogs.com/GS-Crazy/p/3620704.html

你可能感兴趣的文章
面试宝典系列-什么是哈希
查看>>
读《HeadFirst设计模式》笔记之观察者模式
查看>>
情绪是一条河
查看>>
Comparing and Merging Files with GNU diff and p...
查看>>
1-----python编程语言介绍和安装升级
查看>>
Docker 在 CentOS 下的安装、使用
查看>>
swift - 简单的图片滤镜+保存view转成图片存入本地相册
查看>>
Tensorflow 深度学习分布式实现方式
查看>>
Visual Studio 2010新功能-IntelliTrace
查看>>
使用serv-u建立FTP
查看>>
区块链安全吗?
查看>>
深入Java虚拟机
查看>>
带箭头气泡提示框
查看>>
微服务实践(七):从单体式架构迁移到微服务架构
查看>>
owncloud--个人云服务
查看>>
php开启gzip压缩
查看>>
<sh>声明式事务的配置
查看>>
自动更改IP地址反爬虫封锁,支持多线程
查看>>
在Spring-Boot中配置mybatis多数据源
查看>>
dede验证码不显示解决方法
查看>>