源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#操作ftp类分享

  • 时间:2022-01-24 09:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#操作ftp类分享
[u]复制代码[/u] 代码如下:
class ftp {     private string host = null;     private string user = null;     private string pass = null;     private FtpWebRequest ftpRequest = null;     private FtpWebResponse ftpResponse = null;     private Stream ftpStream = null;     private int bufferSize = 2048;     public ftp(string hostIP, string userName, string password) { host = hostIP; user = userName; pass = password; }     public void download(string remoteFile, string localFile)     {         try         {             ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpStream = ftpResponse.GetResponseStream();             FileStream localFileStream = new FileStream(localFile, FileMode.Create);             byte[] byteBuffer = new byte[bufferSize];             int bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);             try             {                 while (bytesRead > 0)                 {                     localFileStream.Write(byteBuffer, 0, bytesRead);                     bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);                 }             }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }             localFileStream.Close();             ftpStream.Close();             ftpResponse.Close();             ftpRequest = null;         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return;     }     public void upload(string remoteFile, string localFile)     {         try         {             ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;             ftpStream = ftpRequest.GetRequestStream();             FileStream localFileStream = new FileStream(localFile, FileMode.Create);             byte[] byteBuffer = new byte[bufferSize];             int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);             try             {                 while (bytesSent != 0)                 {                     ftpStream.Write(byteBuffer, 0, bytesSent);                     bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);                 }             }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }             localFileStream.Close();             ftpStream.Close();             ftpRequest = null;         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return;     }     public void delete(string deleteFile)     {         try         {             ftpRequest = (FtpWebRequest)WebRequest.Create(host + "/" + deleteFile);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.DeleteFile;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpResponse.Close();             ftpRequest = null;         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return;     }     public void rename(string currentFileNameAndPath, string newFileName)     {         try         {             ftpRequest = (FtpWebRequest)WebRequest.Create(host + "/" + currentFileNameAndPath);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.Rename;             ftpRequest.RenameTo = newFileName;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpResponse.Close();             ftpRequest = null;         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return;     }     public void createDirectory(string newDirectory)     {         try         {             ftpRequest = (FtpWebRequest)WebRequest.Create(host + "/" + newDirectory);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.MakeDirectory;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpResponse.Close();             ftpRequest = null;         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return;     }     public string getFileCreatedDateTime(string fileName)     {         try         {             ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + fileName);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.GetDateTimestamp;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpStream = ftpResponse.GetResponseStream();             StreamReader ftpReader = new StreamReader(ftpStream);             string fileInfo = null;             try { fileInfo = ftpReader.ReadToEnd(); }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }             ftpReader.Close();             ftpStream.Close();             ftpResponse.Close();             ftpRequest = null;             return fileInfo;         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return "";     }     public string getFileSize(string fileName)     {         try         {             ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + fileName);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.GetFileSize;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpStream = ftpResponse.GetResponseStream();             StreamReader ftpReader = new StreamReader(ftpStream);             string fileInfo = null;             try { while (ftpReader.Peek() != -1) { fileInfo = ftpReader.ReadToEnd(); } }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }             ftpReader.Close();             ftpStream.Close();             ftpResponse.Close();             ftpRequest = null;             return fileInfo;         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return "";     }     public string[] directoryListSimple(string directory)     {         try         {             ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpStream = ftpResponse.GetResponseStream();             StreamReader ftpReader = new StreamReader(ftpStream);             string directoryRaw = null;             try { while (ftpReader.Peek() != -1) { directoryRaw += ftpReader.ReadLine() + "|"; } }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }             ftpReader.Close();             ftpStream.Close();             ftpResponse.Close();             ftpRequest = null;             try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return new string[] { "" };     }     public string[] directoryListDetailed(string directory)     {         try         {             ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);             ftpRequest.Credentials = new NetworkCredential(user, pass);             ftpRequest.UseBinary = true;             ftpRequest.UsePassive = true;             ftpRequest.KeepAlive = true;             ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;             ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();             ftpStream = ftpResponse.GetResponseStream();             StreamReader ftpReader = new StreamReader(ftpStream);             string directoryRaw = null;             try { while (ftpReader.Peek() != -1) { directoryRaw += ftpReader.ReadLine() + "|"; } }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }             ftpReader.Close();             ftpStream.Close();             ftpResponse.Close();             ftpRequest = null;             try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; }             catch (Exception ex) { Console.WriteLine(ex.ToString()); }         }         catch (Exception ex) { Console.WriteLine(ex.ToString()); }         return new string[] { "" };     } }
[u]复制代码[/u] 代码如下:
ftp ftpClient = new ftp(@"ftp://10.10.10.10/", "user", "password"); ftpClient.upload("etc/test.txt", @"C:\Users\metastruct\Desktop\test.txt"); ftpClient.download("etc/test.txt", @"C:\Users\metastruct\Desktop\test.txt"); ftpClient.delete("etc/test.txt"); ftpClient.rename("etc/test.txt", "test2.txt"); ftpClient.createDirectory("etc/test"); string fileDateTime = ftpClient.getFileCreatedDateTime("etc/test.txt"); Console.WriteLine(fileDateTime); string fileSize = ftpClient.getFileSize("etc/test.txt"); Console.WriteLine(fileSize); string[] simpleDirectoryListing = ftpClient.directoryListDetailed("/etc"); for (int i = 0; i < simpleDirectoryListing.Count(); i++) { Console.WriteLine(simpleDirectoryListing[i]); string[] detailDirectoryListing = ftpClient.directoryListDetailed("/etc"); for (int i = 0; i < detailDirectoryListing.Count(); i++) { Console.WriteLine(detailDirectoryListing[i]); } ftpClient = null;
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部