您的位置:首页 > 产品设计 > UI/UE

包装FTPWebRequest类

2015-06-07 19:09 375 查看
上篇文章讨论了C#从基于FTPS的FTP server下载数据 (FtpWebRequest 的使用)SSL 加密。不过细心的朋友应该可以发现FTPWebRequest 每次都是新生成一个request ( FTPWebRequest.create(uri) ), 这样对于一些复杂的需求,需要反复登陆,代码就会变得冗余啰嗦,那今天就和大家探讨一下如何包装FTPWebRequest类。如有好的想法或意见,希望各位大神老鸟多多指教。

先说一下我的需求:

去FTP Server 的一个指定路径下,找到更新时间最近的文件并下载。
那按照以上需求,就需要先去路径下,找到更新时间最近的文件,在根据文件名下载。

这里封装一个FTPClient 类 (从网上找了一个FTPClient的壳子,忘记了原博客地址了,抱歉)
原理很简单,就是封装‘列出目录功能’和 ‘下载文件功能’。将用户名密码等放在FTPClient的属性中。
上码!

using System;
using System.Configuration;
using System.Linq;

namespace FtpClientBlogCase
{
class Program
{
static void Main(string[] args)
{
DownloadFileFromFTP.DownloadFileFromNetwork();
Console.WriteLine("Done");
}
}

public class DownloadFileFromFTP
{
public static void DownloadFileFromNetwork()
{
var fullDataServer = "XXX";
var userName = "XXX";
var password = "XXX";
var fc = new FTPclient(fullDataServer, userName, password, true);
var list = fc.ListDirectory(fullDataServer);
Console.WriteLine("The file is downloading, please wait...");
fc.Download(fullDataServer + list.Last(), list.Last(), true);

}
}
}


Program.cs
在类FTPClient中,private FtpWebRequest GetRequest(string URI) 是最重要的方法,它为每一个功能提供了一个FtpWebRequest对象,避免了每次生成request对象的冗余冗余代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: