手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#操作ftp类分享
c#操作ftp类分享
摘要:复制代码代码如下:classftp{privatestringhost=null;privatestringuser=null;privat...

复制代码 代码如下:

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[] { "" };

}

}

复制代码 代码如下:

ftp ftpClient = new ftp(@"ftp://10.10.10.10/", "user", "password");

ftpClient.upload("etc/test.txt", @"C:UsersmetastructDesktoptest.txt");

ftpClient.download("etc/test.txt", @"C:UsersmetastructDesktoptest.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;

【c#操作ftp类分享】相关文章:

C# 操作符之二 算数操作符

C# WORD操作实现代码

C# 常见操作符整理

C#字符串常见操作总结详解

C#操作config文件的具体方法

C#操作EXCEL DataTable转换的实例代码

分享用于操作FTP的客户端C#类

C# 骑士飞行棋的源码(分享)

c# 抓取Web网页数据分析

c# 文件(夹)创建与删除

精品推荐
分类导航