DirectoryZip.java
Dosyayı İndir
import java.util.zip.*;
import java.io.*;
public class DirectoryZip{
private ZipOutputStream zos;
private FileOutputStream fos;
private String root="";
public void zip(String dirPath)
throws Exception
{
fos=new FileOutputStream(getZipFilePath(dirPath));
zos=new ZipOutputStream(fos);
zipDir("",dirPath);
zos.close();
fos.close();
}
private void zipDir(String root,String dirPath)
throws Exception
{
File dir=new File(dirPath);
if(dir.isDirectory()){
File[] files=dir.listFiles();
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){
if(!root.equals("")){
zipDir(root+"\\"+dir.getName(),files[i].getPath());
}else{
zipDir(dir.getName(),files[i].getPath());
}
}else if(files[i].isFile()){
if(!root.equals("")){
zipFile(root+"\\"+dir.getName(),files[i].getPath());
}else{
zipFile(dir.getName(),files[i].getPath());
}
}
}
}
}
private void zipFile(String root,String filepath)
throws Exception
{
System.out.println(filepath+" zipleniyor...");
File file=new File(filepath);
FileInputStream fis=new FileInputStream(file);
BufferedInputStream bis=new BufferedInputStream(fis);
ZipEntry fileEntry=new ZipEntry(root+"\\"+file.getName());
zos.putNextEntry(fileEntry);
byte data[]=new byte[2048];
int count;
while((count=bis.read(data,0,2048))!=-1){
zos.write(data,0,count);
}
bis.close();
fis.close();
}
private String getZipFilePath(String dirPath){
File dir=new File(dirPath);
String name=dir.getName();
String parent=dir.getParent();
String zipFilePath=parent+File.separator+name+".zip";
return zipFilePath;
}
public static void main(String[] args) {
String dir=args[0];
DirectoryZip zipper=new DirectoryZip();
try{
zipper.zip(dir);
}catch(Exception e){
e.printStackTrace();
}
}
}
Dosyayı İndir