C#FTP客户端库
C#客户端库
包括异步操作
简介
找到一个完美工作,轻量级的FTP客户端,没有GUI,免费,并且还有源码是很困难的一件事。这套API是基于Jaimon Mathew做过的一件工作。我着手添加了一些错误处理,打印,debugging等功能,并且debug跑过了一遍。
他的使用非常简单,看:
FtpClient ftp=new FtpClient(FtpServer,FtpUsername,FtpPassword);
ftp.Login();
ftp.Upload(@"C:\image.jpg");
ftp.Close();
是不是很简单,我刚开始的工作就是完全封装winINet的API,但是对我来说这是一件夸张的工作,而且他只能用来做FTP。因为微软有力的支持了HTTP,所以我也可以跳过这个,直接在SMP上工作。
特性
上传
下载
恢复
删除
重命名
创建目录
递归上传
异步操作
不足
没有完整测试过
没有真的错误处理
仍然没有下载支援
重命名在重名的情况下融通易造成overwrite
异步操作
有一点点高端的是,异步操作一般是在你的代码总是跳过方法而需要逻辑执行分情况执行的时候,他总是以begin代码为开始。
一般的使用场景,是需要一个AsyncCallback类,和一个handler函数。
private FtpClient ftp = null;
private void UploadPicture(string imagePath)
{
string FtpServer = ConfigurationSettings.AppSettings["FtpServer"];
string FtpUserName = ConfigurationSettings.AppSettings["FtpUserName"];
string FtpPassword = ConfigurationSettings.AppSettings["FtpPassword"];
AsyncCallback callback = new AsyncCallback(CloseConnection);
ftp = new FtpClient(FtpServer,FtpUserName,FtpPassword);
ftp.Login();
ftp.BeginUpload(imagePath, callback);
ftp.Close();
}
private void CloseConnection(IAsyncResult result)
{
Debug.WriteLine(result.IsCompleted.ToString());
if ( ftp != null ) ftp.Close();
ftp = null;
}
当上传操作完成以后,或者抛出错误,CloseConnection会执行。
原文地址:原文地址
源码链接:百度云
著作权声明:本文由木木老师 翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!