package www.experience.handleFile;import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Properties;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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;public class FtpProcess {
public static Log logger = LogFactory.getLog(FtpProcess.class);
private static String username; //FTP 登录用户名
private static String password; //FTP 登录密码
private static String ip; //FTP 服务器地址IP地址
private static int port; //FTP 端口
private static Properties property = null; //属性集
private static String configFile = "E:\\workspace\\myDemo\\src\\config\\ftpconfig.properties"; //配置文件的路径名
private static FTPClient ftpClient = null; //FTP 客户端代理
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
public static int i = 1; //FTP状态码
//参考url http://lavasoft.blog.51cto.com/62575/100386
//url2 http://blog.csdn.net/cyhgohappy/archive/2008/05/12/2437534.aspx
public FtpProcess(){
File file = new File(configFile);
property = new Properties();
try{
// BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
// property.load(bis);
// this.username = property.getProperty("username");
// this.password = property.getProperty("password");
// this.ip = property.getProperty("ip");
// this.port = Integer.parseInt(property.getProperty("port"));
this.username = "wanww";
this.password = "wanww";
this.ip = "192.168.8.251";
this.port = 21;
}catch(Exception ex){
ex.printStackTrace();
}
}
//创建目录
public static void mkdCatalog(String dir){
try {
connectServer();
System.out.println(username+" "+password+" "+ip+" "+port);
String []folder = dir.split("//|/");
String contact = "/";
for(int i = 0,j=folder.length;i<j;i++){
if(null!=folder[i]&&!"".equals(folder[i])){
contact=contact+folder[i]+"/";
boolean bool = ftpClient.changeWorkingDirectory(folder[i]);
System.out.println("bool:..."+bool);
if(!bool){
System.out.println(contact);
boolean s = ftpClient.makeDirectory(contact);//makeDirectory一次只能创建一个目录
System.out.println("<><><>:"+s);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
distory();//可能出现多个ftp,防止出现冲突
}
}
private static void distory(){
try{
ftpClient.disconnect();
ftpClient = null;
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
/**
* 连接到服务器
* @return return true 连接服务器成功,false 连接服务器失败
*/
public static boolean connectServer(){
boolean flag = true;
if(null==ftpClient){
int reply ;
ftpClient = new FTPClient();
ftpClient.setControlEncoding("gbk");
ftpClient.setDefaultPort(port);
// ftpClient.configure(ftpConfig());
try {
ftpClient.connect(ip);
ftpClient.login(username, password);
ftpClient.setDataTimeout(120000);
reply = ftpClient.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)){
ftpClient.disconnect();
System.err.println("FTP server refused connection.");
}
i++;
} catch (SocketException e) {
// TODO Auto-generated catch block
flag = false;
System.err.println("登录ftp服务器 " + ip + " 失败,连接超时!");
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
flag = false;
System.err.println("登录ftp服务器 " + ip + " 失败,FTP服务器无法打开!");
e.printStackTrace();
}
}
return flag;
}
// private static FTPClientConfig ftpConfig(){
// FTPClientConfig clientConfig = new FTPClientConfig(FTPClientConfig.SYST_NT);
// clientConfig.setServerLanguageCode(FTP.DEFAULT_CONTROL_ENCODING);
// return clientConfig;
// }
public static void main(String[] args) {
new FtpProcess();
System.out.println(username);
System.out.println(password);
System.out.println(ip);
System.out.println(port);
mkdCatalog("//sssssss//");
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Properties;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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;public class FtpProcess {
public static Log logger = LogFactory.getLog(FtpProcess.class);
private static String username; //FTP 登录用户名
private static String password; //FTP 登录密码
private static String ip; //FTP 服务器地址IP地址
private static int port; //FTP 端口
private static Properties property = null; //属性集
private static String configFile = "E:\\workspace\\myDemo\\src\\config\\ftpconfig.properties"; //配置文件的路径名
private static FTPClient ftpClient = null; //FTP 客户端代理
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
public static int i = 1; //FTP状态码
//参考url http://lavasoft.blog.51cto.com/62575/100386
//url2 http://blog.csdn.net/cyhgohappy/archive/2008/05/12/2437534.aspx
public FtpProcess(){
File file = new File(configFile);
property = new Properties();
try{
// BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
// property.load(bis);
// this.username = property.getProperty("username");
// this.password = property.getProperty("password");
// this.ip = property.getProperty("ip");
// this.port = Integer.parseInt(property.getProperty("port"));
this.username = "wanww";
this.password = "wanww";
this.ip = "192.168.8.251";
this.port = 21;
}catch(Exception ex){
ex.printStackTrace();
}
}
//创建目录
public static void mkdCatalog(String dir){
try {
connectServer();
System.out.println(username+" "+password+" "+ip+" "+port);
String []folder = dir.split("//|/");
String contact = "/";
for(int i = 0,j=folder.length;i<j;i++){
if(null!=folder[i]&&!"".equals(folder[i])){
contact=contact+folder[i]+"/";
boolean bool = ftpClient.changeWorkingDirectory(folder[i]);
System.out.println("bool:..."+bool);
if(!bool){
System.out.println(contact);
boolean s = ftpClient.makeDirectory(contact);//makeDirectory一次只能创建一个目录
System.out.println("<><><>:"+s);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
distory();//可能出现多个ftp,防止出现冲突
}
}
private static void distory(){
try{
ftpClient.disconnect();
ftpClient = null;
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
/**
* 连接到服务器
* @return return true 连接服务器成功,false 连接服务器失败
*/
public static boolean connectServer(){
boolean flag = true;
if(null==ftpClient){
int reply ;
ftpClient = new FTPClient();
ftpClient.setControlEncoding("gbk");
ftpClient.setDefaultPort(port);
// ftpClient.configure(ftpConfig());
try {
ftpClient.connect(ip);
ftpClient.login(username, password);
ftpClient.setDataTimeout(120000);
reply = ftpClient.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)){
ftpClient.disconnect();
System.err.println("FTP server refused connection.");
}
i++;
} catch (SocketException e) {
// TODO Auto-generated catch block
flag = false;
System.err.println("登录ftp服务器 " + ip + " 失败,连接超时!");
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
flag = false;
System.err.println("登录ftp服务器 " + ip + " 失败,FTP服务器无法打开!");
e.printStackTrace();
}
}
return flag;
}
// private static FTPClientConfig ftpConfig(){
// FTPClientConfig clientConfig = new FTPClientConfig(FTPClientConfig.SYST_NT);
// clientConfig.setServerLanguageCode(FTP.DEFAULT_CONTROL_ENCODING);
// return clientConfig;
// }
public static void main(String[] args) {
new FtpProcess();
System.out.println(username);
System.out.println(password);
System.out.println(ip);
System.out.println(port);
mkdCatalog("//sssssss//");
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;import com.rlm.infra.log.RLMLog;public class FTPUtils {
private String localfilename;
private String remotefilename; FTPClient ftpClient;
FTPFile[] fileList; public void connect(String server, Integer port, String user, String password,
String path) {
try {
ftpClient = new FTPClient();
ftpClient.connect(server, port);
ftpClient.login(user, password);
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- login success !!! ");
if (path.length() != 0) {
boolean flag = ftpClient.changeWorkingDirectory(path);
if (flag) {
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- set working directory to " + path);
}
}
} catch (IOException e) {
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- not login !!! ");
RLMLog.write(RLMLog.LEVEL_ERROR, e.toString());
}
} public void close() {
try {
ftpClient.disconnect();
// RLMLog.write(RLMLog.LEVEL_INFO, "ftp disconnect success !!! ");
} catch (IOException e) {
RLMLog.write(RLMLog.LEVEL_INFO, "ftp not disconnect !!! ");
RLMLog.write(RLMLog.LEVEL_ERROR, e.toString());
}
}
public void upload() {
try {
File localFile = new File(localfilename);
FileInputStream fis = new FileInputStream(localFile);
boolean flag = ftpClient.storeFile(remotefilename, fis);
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- local file " + localfilename);
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- remote filename " + remotefilename);
if (flag) {
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- file upload success !!! ");
// ftpClient.rename(tempFileName, destinationFileName);
}
fis.close();
} catch (FileNotFoundException e) {
RLMLog.write(RLMLog.LEVEL_ERROR, e.toString());
} catch (IOException e) {
RLMLog.write(RLMLog.LEVEL_ERROR, e.toString());
}
}
public void upload(String uploadFilePath) {
// String uploadFilePath = "d:/ftp";
try {
File uploadFile = new File(uploadFilePath);
File[] fileList = uploadFile.listFiles();
if (fileList == null) {
return;
}
for (int i = 0; i < fileList.length; i++) {
FileInputStream fis = new FileInputStream(fileList[i]);
String destinationFileName = fileList[i].getName();
String tempFileName = " temp_ " + destinationFileName; boolean flag = ftpClient.storeFile(tempFileName, fis);
if (flag) {
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- file upload success !!! ");
ftpClient.rename(tempFileName, destinationFileName);
}
fis.close();
}
} catch (IOException e) {
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- file not upload !!! ");
RLMLog.write(RLMLog.LEVEL_ERROR, e.toString());
}
} public void download() {
try {
fileList = ftpClient.listFiles();
ftpClient.makeDirectory(" zjp ");
ftpClient.removeDirectory(" zjp ");
for (int i = 0; i < fileList.length; i++) {
String name = fileList[i].getName();
File temp_file = new File(" c:/ " + " temp_ " + name);
File dest_file = new File(" c:/ " + name);
FileOutputStream fos = new FileOutputStream(temp_file);
boolean flag = ftpClient.retrieveFile(name, fos);
fos.close();
if (flag) {
temp_file.renameTo(dest_file);
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- file download success !!! ");
}
}
} catch (IOException e) {
RLMLog.write(RLMLog.LEVEL_INFO, "ftp -- file not download !!! ");
RLMLog.write(RLMLog.LEVEL_ERROR, e.toString());
}
}
public void setLocalfilename(String localfilename) {
this.localfilename = localfilename;
} public void setRemotefilename(String remotefilename) {
this.remotefilename = remotefilename;
}
}
也可以csdn下载,我上传了资源名是common-net-ftp