原文:http://www.open-open.com/code/view/1420774470187

package com.demo.ftp;  

    import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ConnectException; import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply; /**
* @author wobendiankun 2015-1-8 下午08:11:08
*/
public class FtpClientUtil {
/**
* ftp服务器地址
*/
private String server;
/**
* 端口
*/
private int port;
/**
* 用户名
*/
private String username;
/**
*
*/
private String password; public FtpClientUtil () {
server = "localhost";
port = 21;
username = "kun";
password = "111111";
} public FtpClientUtil(String server, int port, String username,
String password) {
this.server = server;
this.port = port;
this.username = username;
this.password = password;
}
/**上传文件
* @param remoteFileName 远程文件名称
* @param locaFileName 本地文件名称
*/
public void upload(String remoteFileName,String locaFileName){
FTPClient ftp=null;
try {
ftp = new FTPClient();
ftp.addProtocolCommandListener( new PrintCommandListener( new PrintWriter( System.out ), true ) );
//连接ftp服务器
connect( ftp );
//设置属性
setProperty( ftp );
//上传文件
upload( ftp, remoteFileName, locaFileName );
//退出
logout( ftp );
} catch (Exception e) {
e.printStackTrace();
}finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
}
}
} }
/**上传文件
* @param remoteFileName 远程文件名称
* @param locaFileName 本地文件名称
*/
public void download(String remoteFileName,String locaFileName){
FTPClient ftp=null;
try {
ftp = new FTPClient();
ftp.addProtocolCommandListener( new PrintCommandListener( new PrintWriter( System.out ), true ) );
//连接ftp服务器
connect( ftp );
//设置属性
setProperty( ftp );
//下载文件
download( ftp, remoteFileName, locaFileName );
//退出
logout( ftp );
} catch (Exception e) {
e.printStackTrace();
}finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
}
}
}
}
/**创建文件夹
* @param remotePathName 远程文件夹名称
*/
public void mkdir(String remotePathName) {
FTPClient ftp=null;
try {
ftp = new FTPClient();
ftp.addProtocolCommandListener( new PrintCommandListener( new PrintWriter( System.out ), true ) );
//连接ftp服务器
connect( ftp );
//设置属性
setProperty( ftp );
//创建文件夹
mkdir( ftp, remotePathName);
//退出
logout( ftp );
} catch (Exception e) {
e.printStackTrace();
}finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
}
}
}
}
/**
* @param ftp
* @param remotePathName
*/
private void mkdir(FTPClient ftp, String remotePathName) throws Exception{
ftp.makeDirectory(remotePathName);
} /**
* @param ftp
* @param remoteFileName
* @param locaFileName
*/
private void download(FTPClient ftp, String remoteFileName,
String locaFileName) throws Exception{
OutputStream output=null;
output = new FileOutputStream(locaFileName);
ftp.retrieveFile(remoteFileName, output);
output.close();
} /**
* @param ftp
* @throws Exception
*/
private void setProperty(FTPClient ftp) throws Exception {
ftp.enterLocalPassiveMode();
//二进制传输,默认为ASCII
ftp.setFileType(FTP.BINARY_FILE_TYPE);
} /**
* @param ftp
*/
private void logout(FTPClient ftp) throws Exception{
ftp.noop();
ftp.logout();
} /**
* @param ftp
* @param remoteFileName
* @param locaFileName
*/
private void upload(FTPClient ftp, String remoteFileName,
String locaFileName) throws Exception{
//上传
InputStream input; input = new FileInputStream(locaFileName); ftp.storeFile(remoteFileName, input); input.close();
} /**
* @param ftp
*/
private void connect(FTPClient ftp) throws Exception{
//连接服务器
ftp.connect( server, port);
int reply = ftp.getReplyCode();
//是否连接成功
if ( !FTPReply.isPositiveCompletion( reply ) ) {
throw new ConnectException( server+" 服务器拒绝连接" );
}
//登陆
if (!ftp.login(username, password)) {
throw new ConnectException( "用户名或密码错误" );
}
}
} FtpTest
package com.demo.ftp; /**
* @author wobendiankun 2015-1-8 下午08:34:36
*/
public class FtpTest { public static void main(String[] args) {
//上传文件
//upload();
//下载文件
//download();
//创建文件夹
mkdir();
} /**
*
*/
private static void mkdir() {
FtpClientUtil clientUtil=new FtpClientUtil();
clientUtil.mkdir("test");
} /**
*
*/
private static void download() {
String remoteFileName="./111.txt";
String locaFileName="F:\\test\\txt\\3333.txt";
FtpClientUtil clientUtil=new FtpClientUtil();
clientUtil.download(remoteFileName, locaFileName);
} /**
*
*/
private static void upload() {
String remoteFileName="./111.txt";
String locaFileName="F:\\test\\txt\\aaa.txt";
FtpClientUtil clientUtil=new FtpClientUtil();
clientUtil.upload(remoteFileName, locaFileName);
}
}

基于commons-net实现ftp创建文件夹、上传、下载功能的更多相关文章

  1. php文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件 这里我先 ...

  2. Web 项目的文件/文件夹上传下载

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...

  3. Java Web 项目的文件/文件夹上传下载

    需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...

  4. B/S文件夹上传下载组件

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...

  5. html5文件夹上传下载组件

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...

  6. js文件夹上传下载组件

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

  7. java文件夹上传下载组件

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

  8. vue 项目的文件/文件夹上传下载

    前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践. ...

  9. java文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在JAVA.MyEclipse环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下 ...

  10. asp.net文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在.net环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是此例中各种脚本文件 ...

随机推荐

  1. Object.assign(o1, o2, o3) 对象 复制 合拼

    Object 对象方法学习之(1)—— 使用 Object.assign 复制对象.合并对象 合并对象 var o1 = {a: 1}; var o2 = {b: 2}; var o3 = {c: 3 ...

  2. PHP12 文件操作

    学习要点 文件系统概述 目录基本操作 文件基本操作 文件上传下载 文件上传类的设计     文件系统概述 概述 PHP文件系统的操作是基于UNIX系统模型,所以有一些文件处理函数无法在windows服 ...

  3. JavaEE-05 分页与文件上传

    学习要点 新闻分页显示数据 新闻图片上传 JSP分页显示数据 分页 数据信息较多的的时候一般采用列表显示,方便展示信息: 数据量较大的时候一般采用列表加分页的方式显示,便于阅读. 分页方式:集合或者s ...

  4. No-4.文件和目录常用命令

    文件和目录常用命令 结构 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 ...

  5. zabbix auto discovery

    1.configuration>discovery>create discovery rule ip range:192.168.43.2-254 check: http 80 2.con ...

  6. linux wget变成000权限

    今天使用wget下载文件时出现:-bash: /usr/bin/wget: 权限不够. 查看  /usr/bin/wget 的权限为: ---------- 1 root root 357400 3月 ...

  7. tcpdump抓包指令使用示例

    tcpdump是一个用于截取网络分组,并输出分组内容的工具. tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具.tcpdump提供了源代码,公开了 ...

  8. 深入Linux内核架构——简介与概述

    一.内核的任务 纯技术层面上,内核是硬件与软件的之间的一个中间层.作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址. 从应用程序视角上看,内核可以被认为是一台增强 ...

  9. Java应用异常状态监测

    阿里巴巴中间件技术专栏 老板最近分派了一个任务,说线上客户在部署应用的时候发生了系统级别的OOM,触发了OOM Killer杀掉了应用,让我们解决这个问题. 对于这个任务,我从如下几点开始调研.分析与 ...

  10. 如何用纯 CSS 创作一个 3D 文字跑马灯特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/GdrrZq 可交互视频教程 此视 ...