不错的开源FTP类库
- socket开源ftp类库代码:http://netftp.codeplex.com/
需要注意事项,如果以下代码出现乱码问题,可以设置其中的Encoding属性就可以。
用法示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.FtpClient;
using System.Net; namespace AutoGathor.ConsoleUI
{
class Program
{
public static void Main(string[] args)
{
OMCInfo omc = new OMCInfo()
{
Id = Guid.NewGuid(),
DataType = AutoGathor.DataType.MR,
Name = "",
Port = ,
Root = "/",
IP = "172.21.3.41",
Domain = "catt",
UserName = "username",
Password = "password"
}; GathorTaskInfo task = new GathorTaskInfo()
{
OMC = omc,
Id = Guid.NewGuid(),
OMCId = omc.Id,
SavePath = "",
SourcePath = @"/2016-02-25",
StartTime = DateTime.Now,
Status = TaskStatus.DOING
}; using (FtpClient conn = new FtpClient())
{
conn.Host = task.OMC.IP;
conn.Credentials = new NetworkCredential(task.OMC.UserName, task.OMC.Password, task.OMC.Domain); foreach (FtpListItem item in conn.GetListing(conn.GetWorkingDirectory(), FtpListOption.Modify | FtpListOption.Size))
{
switch (item.Type)
{
case FtpFileSystemObjectType.Directory:
Console.WriteLine(item.Input); foreach (FtpListItem _item in conn.GetListing(item.FullName, FtpListOption.Modify | FtpListOption.Size))
{
switch (_item.Type)
{
case FtpFileSystemObjectType.Directory:
Console.WriteLine(_item.Input); foreach (FtpListItem __item in conn.GetListing(_item.FullName, FtpListOption.Modify | FtpListOption.Size))
{
switch (__item.Type)
{
case FtpFileSystemObjectType.Directory:
Console.WriteLine(__item.Input);
break;
case FtpFileSystemObjectType.File:
Console.WriteLine(__item.Input);
break;
}
}
break;
case FtpFileSystemObjectType.File:
Console.WriteLine(_item.Input);
break; }
} break;
case FtpFileSystemObjectType.File:
Console.WriteLine(item.Input);
break; }
}
} Console.ReadKey();
}
}
}
不过上边的代码,在获取一个目录下具有几十万个文件的情况下,返回该目录下的文件列表信息,效率非常低,经过优化修改源码才能解决该问题;
而且,在使用正则匹配文件目录的地方,要使用四种已经提供的正则方式去配置文件名称,文件类型(文件、目录),修改时间等信息,如果可以把不同目录的结构统计好,配置为可选的方式,效率会更高。
该方案采用了socket安全线程下载文件方式,OpenStream函数中会克隆出一个新的tcp连接,很容易达到ftp服务器允许最大连接数,这是一个隐患。
- 另外一个开源ftp类库: http://ftplib.codeplex.com/
该类型库是使用wininet.dll kernel32.dll来开发的一个类库,可以说性能极高,但是很容易出现中文乱码问题,该文件只需要把获取到的文件名称进行相应的转码就可以解决。
不错的开源FTP类库的更多相关文章
- JAVA 中不错的开源FTP组件:commons-net
第一步:引入jar到pom.xml. <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dep ...
- [转]非常实用的15款开源PHP类库
源文件:http://www.csdn.net/article/2013-10-09/2817123-PHP-Libraries 英文原文:https://codegeekz.com/useful-p ...
- 15款开源PHP类库
PHP库给开发者提供了一个标准接口,它帮助开发者在PHP里充分利用面向对象编程.这些库为特定类型的内置功能提供了一个标准的API,允许类可以与PHP引擎进行无缝的交互.此外,开发者使用这些类库还可以简 ...
- 非常实用的15款开源PHP类库
PHP库给开发者提供了一个标准接口,它帮助开发者在PHP里充分利用面向对象编程.这些库为特定类型的内置功能提供了一个标准的API,允许类可以与PHP引擎进行无缝的交互.此外,开发者使用这些类库还可以简 ...
- PHP 支付类库, cURL开源HTTP类库
未做任何测试 支付类库地址:http://doc.yurunsoft.com/PaySDK cURL开源HTTP类库地址:http://doc.yurunsoft.com/YurunHttp/1
- FTP工具FileZilla&WinSCP与FTP类库FluentFTP
FileZilla Filezilla分为client和server.其中FileZilla Server是Windows平台下一个小巧的第三方FTP服务器软件,系统资源也占用非常小,可以让你快速简单 ...
- 开源FTP软件FileZilla使用介绍
简介 FileZilla是一个优秀的开源FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能,如果想自己搭建FTP服务器,FileZilla是一个好选择. 下载 FileZilla有一个中 ...
- 几个不错的开源的.net界面控件
转自原文 几个不错的开源的.net界面控件 (转) 几个不错的开源的.net界面控件 - zt 介绍几个自己觉得不错的几个开源的.net界面控件,不知道是否有人介绍过. DockPanel Suite ...
- 使用开源免费类库在.net中操作Excel
自从上次找到NPOI之后,根据园友提供的线索以及Google,又找到了一些开源免费的类库,所以都简单体验了一遍. 主要找到以下类库: MyXls(http://sourceforge.net/proj ...
随机推荐
- CDOJ 435 (SCOI 2011) 糖果 Label:差分约束系统
糖果 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 131072/131072KB (Java/Others) Submit Stat ...
- Xcode的command+shift+o是一个不错的工具
一,经历 1.在向UITextField中输入图片的时候,可以使用 NSAttributedString 添加,但是很难找到能够返回NSAttributedString对象的方法. 2.通过comma ...
- 使用C#将HTML文本转换为普通文本,去掉所有的Html标记(转)
using System; using System.Collections.Generic; using System.Linq; using System.Text; //首先需要导入命名空间 u ...
- Flex条件判断中注意事项
1:等于判断条件,一定注意写两个==等号, if (obj.ProcessType="Relation") 如果只写一个等号,编译不会报错,并且Flex会认为是赋值操作,并且该语句 ...
- GO语言练习:值与引用
1.代码 2.运行 package main import "fmt" func testValue(){ fmt.Println("for value") v ...
- Rockey 4加密狗介绍
Rockey 4加密狗介绍 特点:该加密狗是单片机加密狗时代飞天公司的主力产品,R4一样继承了R2的硬件特征,具有全球唯一性硬件ID.R4内置了硬件随机数生成器,可以进行一些抗跟踪,或在硬件算法中参与 ...
- [转]B树、B-树、B+树、B*树
题记:转一篇很直观介绍各类B树的文章. B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 3.非叶子结点的左指针指向小于其关键字的子树, ...
- [LintCode] Paint House II 粉刷房子之二
There are a row of n houses, each house can be painted with one of the k colors. The cost of paintin ...
- java web(三) Tomcat虚拟目录映射方式
Tomact服务器虚拟目录的映射方式 web应用开发好后若想被外界访问,需要将web应用所在的目录交给web服务器管理,这个过程称为虚拟目录的映射. 方式一:在server.xml文件的host元素中 ...
- 重命名PDF打印文件名
Odoo系统默认打印出来的PDF文件都是以当前文档模型对象对应的模板文件名命名的,对用户来说,这样的命名很不友好. 我们希望能够将打印出来的文件名以单号命名,下面是实现这种目的的方法. 在report ...