萝卜FTP工具续
来源:互联网 发布:淘宝能买到烟吗 编辑:程序博客网 时间:2024/04/30 03:23
1,已经完成萝卜FTP工具基本上传下载和查看远程文件功能
2,增加工具集swing界面
3,集成quartz,提供定时任务
4,计划增加完成任务短信提醒功能;数据库表导出文件功能
预:接下来文章准备继续探讨junit,主要探讨junitcore这个类
package org.yangxin;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPClientConfig;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;/** * @author 杨欣 * 萝卜FTP工具包 */public class FTPRadish { private FTPClient ftpClient; private int controlKeepAliveReplyTimeout = -1;//等待应答时间 private long keepAliveTimeout = -1;//等待发送,超时时间 private boolean hidden = false;//是否显示服务器隐藏文件 private String msg = "ok"; private FTPRadish() {} private FTPRadish(FTPClient ftp) { ftpClient = ftp; } static public FTPRadish me() { FTPRadish radish = new FTPRadish(new FTPClient()); return radish; } /** * @param server ftp服务器地址 * @param port ftp端口 * @return * 连接ftp服务器 */ public boolean connection(String server, int port) { ftpClient.setListHiddenFiles(isHidden()); if (keepAliveTimeout >= 0) { ftpClient .setControlKeepAliveTimeout(keepAliveTimeout); } if (controlKeepAliveReplyTimeout >= 0) { ftpClient .setControlKeepAliveReplyTimeout(controlKeepAliveReplyTimeout); } try { ftpClient.connect(server, port); if (isReplyV(ftpClient.getReplyCode())) { setMsg("用户名或密码错误!"); disconnect(); return false; } } catch (IOException e) { disconnect(); setMsg("连接服务器:" + server + "的端口:" + port + "失败!"); return false; } setMsg("已建立与" + server + ",端口" + port + "的连接!"); return true; } /** * @param user 用户名 * @param pwd 密码 * @return * 登录 */ public boolean login(String user, String pwd) { boolean ok = true; try { ok = ftpClient.login(user, pwd); if (isReplyV(ftpClient.getReplyCode())) { setMsg("用户名或密码错误!!"); disconnect(); return false; } ftpClient.enterLocalPassiveMode(); } catch (IOException e) { setMsg("登录失败!"); disconnect(); return false; } setMsg("登录成功!"); return ok; } /** * @param charset 字符集 * @param lang 服务器语言环境 */ public void ftpConf(String charset, String lang) { ftpClient.setControlEncoding(charset); FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT); conf.setServerLanguageCode(lang); } /** * @param locFile * @param remoteFile * @return */ public boolean upload(String locFile, String remoteFile) { InputStream in = null; try { ftpClient.setFileType(FTP.BINARY_FILE_TYPE); in = new FileInputStream(new File(locFile)); ftpClient.storeFile(remoteFile, in); setMsg("上传" + locFile + "成功!"); }catch (FileNotFoundException e) { setMsg("文件" + locFile + "不存在!"); return false; } catch (IOException e) { setMsg("上传" + locFile + "失败!"); return false; } finally { if (in != null) { try { in.close(); } catch (IOException e) { } } } return true; } /** * @param remoteFile 远程文件 * @param locFile 本地文件 * @return * 下载文件 */ public boolean down(String remoteFile, String locFile) { OutputStream out = null; try { out = new FileOutputStream(locFile); ftpClient.retrieveFile(remoteFile, out); setMsg("下载文件" + locFile +"成功!"); } catch (IOException e) { setMsg("下载失败!"); return false; } return true; } /** * @return * 获取默认当前目录文件列表 */ public List<String> getList() { List<String> dir = new ArrayList<String>(); try { FTPFile[] ftpfs = ftpClient.listFiles(); for (FTPFile ff : ftpfs) { dir.add(ff.getName()); } } catch (IOException e) { setMsg("读取远程服务器文件目录失败!"); return null; } setMsg("获取远程服务器文件目录成功!"); return dir; } /** * @param reply 服务器返回状态码 * @return */ public boolean isReplyV(int reply) { return !FTPReply.isPositiveCompletion(reply); } /** * @param dir * 改变当前工作目录 */ public void changeWorkingDirectory(String dir) { try { ftpClient.changeWorkingDirectory(dir); setMsg("当前工作目录:" + dir); } catch (IOException e) { setMsg("切换工作目录" + dir + "异常!"); } } public boolean isLogin() { return ftpClient.isAvailable(); } public boolean isConn() { return ftpClient.isConnected(); } public void disconnect() { try { if (isLogin()) { ftpClient.logout(); setMsg("已退出登录"); } if (isConn()) { ftpClient.disconnect(); setMsg("已断开连接"); } } catch (IOException e) { } } public int getControlKeepAliveReplyTimeout() { return controlKeepAliveReplyTimeout; } public void setControlKeepAliveReplyTimeout(int controlKeepAliveReplyTimeout) { this.controlKeepAliveReplyTimeout = controlKeepAliveReplyTimeout; } public long getKeepAliveTimeout() { return keepAliveTimeout; } public void setKeepAliveTimeout(long keepAliveTimeout) { this.keepAliveTimeout = keepAliveTimeout; } public boolean isHidden() { return hidden; } public void setHidden(boolean hidden) { this.hidden = hidden; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; }}
0 0
- 萝卜FTP工具续
- 自制萝卜FTP工具
- 萝卜
- 搭建Linux 编程工具-萝卜青菜各有所爱
- ftp工具
- ftp工具
- 《保卫萝卜》分析续——地图构成
- 半个萝卜
- 萝卜花园
- 韩式腌萝卜
- 倔强萝卜
- 拔萝卜
- 素烧白萝卜
- 白萝卜
- 青萝卜
- 红烧萝卜
- 萝卜煲羊排
- FTP测试工具
- 在移动Web单页应用中实现固定页脚
- Python 图像显示
- 【算法设计与分析】9、最小生成树,贪心算法实现
- 编写自己的json解析工具二
- 当男友在创业
- 萝卜FTP工具续
- 微信6.0版的一些设计细节
- java-单例笔记
- 慎用text-indent的负值
- 我的javascript
- Apache James 搭建自己的邮件服务器
- 复习之游戏商城
- Host 'localhost' is not allowed to connect to
- 求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)