import java.io.*;
import java.util.*;
import java.util.zip.*;
int parentDirectoryLen
=sourceDir.
lastIndexOf(File.
separator)+1;
File[] copyfoldersList
= new File(sourceDir
).
listFiles();
for (int k = 0; k < copyfoldersList.length; k++) {
if (copyfoldersList[k].isDirectory()) {
LinkedList
<String
> copysourcepath
= new LinkedList
<String
>(Arrays.
asList(copyfoldersList
[k
].
getAbsolutePath()));
while (copysourcepath.size() > 0) {
File folders
= new File(copysourcepath.
peek());
String[] file
= folders.
list();
for (int i = 0; i < file.length; i++) {
File ff
= new File(copysourcepath.
peek(), file
[i
]);
if (ff.isFile()) {
try {
ZipEntry entry
= new ZipEntry(ff.
getAbsoluteFile().
substring(parentDirectoryLen
));
zipOut.putNextEntry(entry);
int nNumber;
byte[] buffer
= new byte[Long.
MIN_VALUE];
while ((nNumber = fis.read(buffer)) != -1)
zipOut.write(buffer, 0, nNumber);
e.printStackTrace();
zipOut.close();
fos.close();
}finally{
try {
fis.close();
}
} else if (ff.isDirectory()) {
for (File f
: temp.
listFiles()) {
if (f.isDirectory())
copysourcepath.add(f.getPath());
else if (f.isFile()) {
try {
ZipEntry entry
= new ZipEntry(f.
getAbsoluteFile().
substring(parentDirectoryLen
));
zipOut.putNextEntry(entry);
int nNumber;
byte[] buffer
= new byte[Long.
MIN_VALUE];
while ((nNumber = fis.read(buffer)) != -1)
zipOut.write(buffer, 0, nNumber);
e.printStackTrace();
zipOut.close();
fos.close();
}finally{
try {
fis.close();
}
}
}
}
}
copysourcepath.removeFirst();
}
}
}
try {
zipOut.flush();
e.printStackTrace();
}finally{
try {
zipOut.close();
fos.close();
}
//java/5714