package com.test.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
public class FtpZipOption {
/**
* 从ftp服务器下载zip文件
* @param
*@throws Exception
**/
public static void downLoadZipFile() throws Exception {
String wantFileName = getWantFileName() ;//得到此时该下载的文件名
String[] localFileNameArray = getLocalFileNameArray("D:\\download") ;//得到所有已经下载的文件名
if(ifToDownLoadFile(wantFileName,localFileNameArray)){//判断是否需要下载
String str; //输出信息字符串
/**
* 和服务器建立连接
*/
FtpClient ftp = new FtpClient("192.168.39.189"); //根据服务器ip建立连接
str = ftp.getResponseString(); //获得响应信息
System.out.println("连接服务器:" + str);
/**
* 登陆到Ftp服务器
*/
ftp.login("test", "test"); //根据用户名和密码登录服务器
str = ftp.getResponseString();
System.out.println("登录:"+str);
/**
* 打开并定位到服务器目录
*/
ftp.cd("downziptest\\downzip"); //打开服务器上的文件目录
str = ftp.getResponseString() ;
System.out.println("打开服务器目录:"+str) ;
ftp.binary();//转化为二进制的文件
TelnetInputStream ftpIn = ftp.get(wantFileName+".zip");//找到要读取的文件
byte[] buf = new byte[204800];
int bufsize = 0;
String toLocalPath = "D:\\download\\"+wantFileName+".zip" ;
FileOutputStream ftpOut = new FileOutputStream(toLocalPath);
while ((bufsize = ftpIn.read(buf, 0, buf.length)) != -1) {
ftpOut.write(buf, 0, bufsize);
}
ftpOut.close();
ftpIn.close();
System.out.println("下载"+wantFileName+".zip完成!") ;
}else{
System.out.println(wantFileName+".zip在本地已经存在,不予下载") ;