文件批量传输组件可做为一个工具架包,其余系统可调用方法进行文件传输相关操做,能对某个文件夹进行自动监控、多线程批量传输、文件md5对比、错误重传等。文件批量传输组件做为系统直接使用见http://my.oschina.net/passerman/blog/715642。多线程
1. 发送单文件不中转时:工具
发送端代码例子:.net
FileClientConfig clientConfig=new FileClientConfig(false,true,false,"localhost",112); /* clientConfig.setAuthorityCheck(true);//权限验证 clientConfig.setAuthorityKey("password111"); //验证密锁 */ FileTransferClient fileTransferClient=new FileTransferClient(clientConfig); fileTransferClient.init(); //要发送的文件 String absolutePath="E:\\log.txt"; FileInfo fileInfo=new FileInfo(); fileInfo.setFilePath(absolutePath); fileTransferClient.sendFile("\\log2.txt", fileInfo); //想保存的文件名
接收端代码例子:线程
//只做为接收主机 FileServerConfig fileServerConfig=new FileServerConfig("d:\\csavefile", 112, false); ServerReceiveControl serverReceiveControl=new ServerReceiveControl(fileServerConfig); //serverReceiveControl.addServerFilePlugin(new ServerFilePlugin()); //serverReceiveControl.addServerFilePlugin(new DemoServerFilePlugin()); ReceiveServerPulse ReceiveServerPulse=new ReceiveServerPulse( serverReceiveControl); ReceiveServerPulse.start();
2. 监控文件夹不中转时:code
发送端代码例子:server
//不中转监控传输 FileClientConfig clientConfig=new FileClientConfig("E:\\upload",true,true,false,"localhost",111); clientConfig.setTimerTaskPeriod(1000*30);//每30秒监控一次 /*clientConfig.setAuthorityCheck(true);//权限验证 clientConfig.setAuthorityKey("password111"); //验证密锁 */ FileTransferClient fileTransferClient=new FileTransferClient(clientConfig); /*fileTransferClient.getTransferControl().addClientFilePlugin(new DemoClientFilePlugin(fileTransferClient.getTransferControl()));//增长自定义拦截器 fileTransferClient.getTransferControl().addClientFilePlugin(new AuthorityClientFilePlugin(fileTransferClient.getTransferControl())); //添加验证拦截器 */ fileTransferClient.init();
接收端代码例子:blog
与1相同。md5
3. 监控文件夹中转传输:get
发送端代码例子:it
FileClientConfig clientConfig=new FileClientConfig("E:\\upload", true, true, true, "localhost", 111,"localhost",112,201); clientConfig.setTimerTaskPeriod(1000*30); clientConfig.setAuthorityCheck(true);//权限验证 clientConfig.setAuthorityKey("password111"); //验证密锁 FileTransferClient fileTransferClient=new FileTransferClient(clientConfig); fileTransferClient.getTransferControl().addClientFilePlugin(new DemoClientFilePlugin(fileTransferClient.getTransferControl())); fileTransferClient.getTransferControl().addClientFilePlugin(new AuthorityClientFilePlugin(fileTransferClient.getTransferControl())); //添加验证拦截器 fileTransferClient.init();
中转端代码例子:
FileServerConfig fileServerConfig=new FileServerConfig("d:\\csavefile", 111, true); //文件接收配置类 ServerReceiveControl serverReceiveControl=new ServerReceiveControl(fileServerConfig); //文件接收控制类 serverReceiveControl.addServerFilePlugin(new ServerFilePlugin()); serverReceiveControl.addServerFilePlugin(new DemoServerFilePlugin()); ReceiveServerPulse ReceiveServerPulse=new ReceiveServerPulse(serverReceiveControl); ReceiveServerPulse.start();
目标接收端代码例子:
//只做为接收主机 FileServerConfig fileServerConfig=new FileServerConfig("d:\\csavefile", 112, false); ServerReceiveControl serverReceiveControl=new ServerReceiveControl(fileServerConfig); ReceiveServerPulse ReceiveServerPulse=new ReceiveServerPulse( serverReceiveControl); ReceiveServerPulse.start();