public class ZipHelper
{
private static int BUFFER_SIZE = 32768;
public static void fileToZip(File paramFile1, File paramFile2, int paramInt)
throws Exception
{
paramFile2.createNewFile();
FileOutputStream localFileOutputStream = new FileOutputStream(paramFile2);
ZipOutputStream localZipOutputStream = null;
try
{
localZipOutputStream = new ZipOutputStream(new BufferedOutputStream(localFileOutputStream));
localZipOutputStream.setLevel(paramInt);
if (paramFile1.isDirectory())
{
File[] arrayOfFile = paramFile1.listFiles();
for (int i = 0; i < arrayOfFile.length; ++i)
fileToZip(arrayOfFile[i], localZipOutputStream, paramFile1);
}
else if (paramFile1.isFile())
{
fileToZip(paramFile1, localZipOutputStream, paramFile1.getParentFile());
}
}
finally
{
if (localZipOutputStream != null)
localZipOutputStream.close();
}
}
public static void filesToZip(File[] paramArrayOfFile, File paramFile, int paramInt)
throws Exception
{
paramFile.createNewFile();
FileOutputStream localFileOutputStream = new FileOutputStream(paramFile);
ZipOutputStream localZipOutputStream = null;
try
{
localZipOutputStream = new ZipOutputStream(new BufferedOutputStream(localFileOutputStream));
localZipOutputStream.setLevel(paramInt);
for (int i = 0; i < paramArrayOfFile.length; ++i)
{
File localFile = paramArrayOfFile[i];
if (localFile.isDirectory())
{
File[] arrayOfFile = localFile.listFiles();
for (int j = 0; j < arrayOfFile.length; ++j)
fileToZip(arrayOfFile[j], localZipOutputStream, localFile);
}
else
{
if (!(localFile.isFile()))
continue;
fileToZip(localFile, localZipOutputStream, localFile.getParentFile());
}
}
}
finally
{
if (localZipOutputStream != null)
localZipOutputStream.close();
}
}
private static void fileToZip(File paramFile1, ZipOutputStream paramZipOutputStream, File paramFile2)
throws Exception
{
String str = paramFile1.getPath().substring(paramFile2.getPath().length() + 1);
if (File.separatorChar != '/')
str = str.replace(File.separator, "/");
Object localObject1;
if (paramFile1.isDirectory())
{
paramZipOutputStream.putNextEntry(new ZipEntry(str + "/"));
paramZipOutputStream.closeEntry();
localObject1 = paramFile1.listFiles();
for (int i = 0; i < localObject1.length; ++i)
fileToZip(localObject1[i], paramZipOutputStream, paramFile2);
}
else
{
localObject1 = null;
try
{
localObject1 = new FileInputStream(paramFile1);
paramZipOutputStream.putNextEntry(new ZipEntry(str));
streamCopy((InputStream)localObject1, paramZipOutputStream);
}
finally
{
paramZipOutputStream.closeEntry();
if (localObject1 != null)
((FileInputStream)localObject1).close();
}
}
}
private static void streamCopy(InputStream paramInputStream, OutputStream paramOutputStream)
throws IOException
{
byte[] arrayOfByte = new byte[BUFFER_SIZE];
while ((i = paramInputStream.read(arrayOfByte)) > 0)
{
int i;
paramOutputStream.write(arrayOfByte, 0, i);
}
}
}
{
private static int BUFFER_SIZE = 32768;
public static void fileToZip(File paramFile1, File paramFile2, int paramInt)
throws Exception
{
paramFile2.createNewFile();
FileOutputStream localFileOutputStream = new FileOutputStream(paramFile2);
ZipOutputStream localZipOutputStream = null;
try
{
localZipOutputStream = new ZipOutputStream(new BufferedOutputStream(localFileOutputStream));
localZipOutputStream.setLevel(paramInt);
if (paramFile1.isDirectory())
{
File[] arrayOfFile = paramFile1.listFiles();
for (int i = 0; i < arrayOfFile.length; ++i)
fileToZip(arrayOfFile[i], localZipOutputStream, paramFile1);
}
else if (paramFile1.isFile())
{
fileToZip(paramFile1, localZipOutputStream, paramFile1.getParentFile());
}
}
finally
{
if (localZipOutputStream != null)
localZipOutputStream.close();
}
}
public static void filesToZip(File[] paramArrayOfFile, File paramFile, int paramInt)
throws Exception
{
paramFile.createNewFile();
FileOutputStream localFileOutputStream = new FileOutputStream(paramFile);
ZipOutputStream localZipOutputStream = null;
try
{
localZipOutputStream = new ZipOutputStream(new BufferedOutputStream(localFileOutputStream));
localZipOutputStream.setLevel(paramInt);
for (int i = 0; i < paramArrayOfFile.length; ++i)
{
File localFile = paramArrayOfFile[i];
if (localFile.isDirectory())
{
File[] arrayOfFile = localFile.listFiles();
for (int j = 0; j < arrayOfFile.length; ++j)
fileToZip(arrayOfFile[j], localZipOutputStream, localFile);
}
else
{
if (!(localFile.isFile()))
continue;
fileToZip(localFile, localZipOutputStream, localFile.getParentFile());
}
}
}
finally
{
if (localZipOutputStream != null)
localZipOutputStream.close();
}
}
private static void fileToZip(File paramFile1, ZipOutputStream paramZipOutputStream, File paramFile2)
throws Exception
{
String str = paramFile1.getPath().substring(paramFile2.getPath().length() + 1);
if (File.separatorChar != '/')
str = str.replace(File.separator, "/");
Object localObject1;
if (paramFile1.isDirectory())
{
paramZipOutputStream.putNextEntry(new ZipEntry(str + "/"));
paramZipOutputStream.closeEntry();
localObject1 = paramFile1.listFiles();
for (int i = 0; i < localObject1.length; ++i)
fileToZip(localObject1[i], paramZipOutputStream, paramFile2);
}
else
{
localObject1 = null;
try
{
localObject1 = new FileInputStream(paramFile1);
paramZipOutputStream.putNextEntry(new ZipEntry(str));
streamCopy((InputStream)localObject1, paramZipOutputStream);
}
finally
{
paramZipOutputStream.closeEntry();
if (localObject1 != null)
((FileInputStream)localObject1).close();
}
}
}
private static void streamCopy(InputStream paramInputStream, OutputStream paramOutputStream)
throws IOException
{
byte[] arrayOfByte = new byte[BUFFER_SIZE];
while ((i = paramInputStream.read(arrayOfByte)) > 0)
{
int i;
paramOutputStream.write(arrayOfByte, 0, i);
}
}
}