Enumeration zList = zfile.entries();//得到zip包里的所有元素
ZipEntry ze = null;
byte[] buf = new byte[1024];
while (zList.hasMoreElements()) {
ze = (ZipEntry) zList.nextElement();
if (ze.isDirectory()) {
System.out.println("打开zip文件里的文件夹:" + ze.getName()
+ " skipped...");
continue;
}
System.out.println("zip包里的文件: " + ze.getName() + "\t" + "大小为:"
+ ze.getSize() + "KB");
//以ZipEntry为参数得到一个InputStream,并写到OutputStream中
OutputStream outputStream = new BufferedOutputStream(
new FileOutputStream(getRealFileName(toDisk, ze.getName())));
InputStream inputStream = new BufferedInputStream(zfile
.getInputStream(ze));
int readLen = 0;
while ((readLen = inputStream.read(buf, 0, 1024)) != -1) {
outputStream.write(buf, 0, readLen);
}
inputStream.close();
outputStream.close();
System.out.println("已经解压出:" + ze.getName());
}
zfile.close();
}
private static String getAbsFileName(String baseDir, File realFileName) {
File real = realFileName;
File base = new File(baseDir);
String ret = real.getName();
while (true) {
real = real.getParentFile();
if (real == null)
break;
if (real.equals(base))
break;
else
ret = real.getName() + "/" + ret;
}
return ret;
}
private static List<File> getSubFiles(File baseDir) {
List<File> ret = new ArrayList<File>();
File[] tmp = baseDir.listFiles();
for (int i = 0; i < tmp.length; i++) {
if (tmp[i].isFile())
ret.add(tmp[i]);
if (tmp[i].isDirectory())
ret.addAll(getSubFiles(tmp[i]));
}
return ret;
}
String[] dirs = absFileName.split("/", absFileName.length());
File ret = new File(zippath);// 创建文件对象
if (dirs.length > 1) {
for (int i = 0; i < dirs.length - 1; i++) {
ret = new File(ret, dirs[i]);
}
}
if (!ret.exists()) {// 检测文件是否存在
ret.mkdirs();// 创建此抽象路径名指定的目录
}
ret = new File(ret, dirs[dirs.length - 1]);// 根据 ret 抽象路径名和 child 路径名字符串创建一个新 File 实例
return ret;
}
private static List getServerFileNameList(FtpClient ftp,String folderName) throws Exception{
BufferedReader dr = new BufferedReader(new InputStreamReader(ftp.nameList(folderName)));
List<String> list = new ArrayList<String>() ;
String s;
while((s=dr.readLine())!=null){
list.add(s) ;
}
return list ;
}
public static String getNowTime() {
String timeStr;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date currentTime = new Date(System.currentTimeMillis());
timeStr = format.format(currentTime);
return timeStr;
}
public static String getWantFileName() throws Exception{
Date currentTime = new Date(System.currentTimeMillis());
DateFormat df1 = new SimpleDateFormat("yyyyMMdd");
Date todayDate = new Date(System.currentTimeMillis()) ;
String todayStr = df1.format(todayDate) ;//得到当前的年月日
DateFormat df2 = new SimpleDateFormat("yyyyMMddHH");
Date compareTime1 = df2.parse(compareTimeStr1) ;
Date compareTime2 = df2.parse(compareTimeStr2) ;
Date compareTime3 = df2.parse(compareTimeStr3) ;
Date compareTime4 = df2.parse(compareTimeStr4) ;