包装FTPWebRequest类
2015-06-07 19:09
375 查看
上篇文章讨论了C#从基于FTPS的FTP server下载数据 (FtpWebRequest 的使用)SSL 加密。不过细心的朋友应该可以发现FTPWebRequest 每次都是新生成一个request ( FTPWebRequest.create(uri) ), 这样对于一些复杂的需求,需要反复登陆,代码就会变得冗余啰嗦,那今天就和大家探讨一下如何包装FTPWebRequest类。如有好的想法或意见,希望各位大神老鸟多多指教。
先说一下我的需求:
去FTP Server 的一个指定路径下,找到更新时间最近的文件并下载。
那按照以上需求,就需要先去路径下,找到更新时间最近的文件,在根据文件名下载。
这里封装一个FTPClient 类 (从网上找了一个FTPClient的壳子,忘记了原博客地址了,抱歉)
原理很简单,就是封装‘列出目录功能’和 ‘下载文件功能’。将用户名密码等放在FTPClient的属性中。
上码!
Program.cs
在类FTPClient中,private FtpWebRequest GetRequest(string URI) 是最重要的方法,它为每一个功能提供了一个FtpWebRequest对象,避免了每次生成request对象的冗余冗余代码。
先说一下我的需求:
去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对象的冗余冗余代码。
相关文章推荐
- 【Java GUI】框架窗口基础
- input:text 的value 和 attribute('value') 不是一回事
- Uva 1584 Circular Sequence
- LightOJ1012---Guilty Prince (并查集)
- uibutton block
- Mysql出现Field * doesn't have a defa 4000 ult value解决办法
- hdu 1159 Common Subsequence(最长公共子序列)
- BZOJ 1626: [Usaco2007 Dec]Building Roads 修建道路( MST )
- iOS开发UI高级—38Quartz2D使用(绘制基本图形)
- iOS开发UI高级—37Quartz2D(自定义UIImageView控件)
- iOS开发UI高级—36核心动画(UIView封装动画)
- Cross Site Request Forgery protection(部分)
- Android程序出现错误“Field requires API level 5 (current min is 4)”的解决
- iOS开发UI高级—35核心动画(转场动画和组动画)
- iOS开发UI高级—33核心动画(基础动画)
- iOS开发UI高级—34核心动画(关键帧动画)
- iOS开发UI高级—32核心动画简介
- iOS开发UI高级—31CAlayer(自定义layer)
- iOS开发UI高级—30CAlayer层的属性
- uefi创建文件、文件夹导致文件夹中某个文件丢失