📄 zipdirectory.java
字号:
import java.io.*;
import java.util.zip.*;
public class ZipDirectory {
/**
* @param args
*/
private String zipPath;
private String zipName;
private long orgSize;
private File dir;
public ZipDirectory(String z) throws Exception
{
dir=new File(z);
zipPath=dir.getPath();
zipName=dir.getParent()+"\\"+dir.getName();//.getName(); //
// ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(dir));
}
public String getZipPath(){
return zipPath;
}
public String getZipName(){
return zipName;
}
public void zip() throws Exception{
ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(zipName+".zip"));
zip(zos,dir,"");
System.out.println(zipName+" has finished.\n zipPath: "+zipPath);
zos.close();
}
private void zip(ZipOutputStream zos,File inputFile,String base) throws Exception
{
if(inputFile.isDirectory()){
File[] files= inputFile.listFiles();
zos.putNextEntry(new ZipEntry(base+"\\"));
base=base.length()==0?"":base+"\\";
System.out.println("directory: "+inputFile.getName()+"\n base :"+base);
for(int i=0;i<files.length;i++){
zip(zos,files[i],base+files[i].getName());
}
}
else{
zos.putNextEntry(new ZipEntry(base));
FileInputStream fin=new FileInputStream(inputFile);
System.out.println("File available:"+fin.available()+" \n filename "+inputFile.getName());
orgSize+=fin.available();
int c;
while((c=fin.read())!=-1){
zos.write(c);
}
System.out.println("file finish: "+inputFile.getName()+"\n base :"+base);
fin.close();
}
}
public long getCompressedSize()
{
File f=new File(zipName+".zip");
return f.length();
}
public long getOriginalSize()
{
return orgSize;
}
public float getCompressedRate()
{
return (float)this.getCompressedSize()/this.getOriginalSize()*100;
}
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
ZipDirectory zd=new ZipDirectory("F:\\share\\Soldes");
System.out.println("compressed:"+zd.getCompressedSize());
System.out.println("orginal: "+zd.getOriginalSize());
System.out.println("Rate: "+zd.getCompressedRate()+"%");
// System.out.printf("%.2d", (float)100*zd.getCompisedSize()/zd.getOriginalSize());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -