Estou usando as classes abaixo para compactar e descompactar arquivos zip no android, porem preciso de uma ajuda para como gerar o arquivo zipado e descompactar mas com uma senha ex: 123456?
//Método responsável em zipar o banco de dados
public static boolean Zipar(String filename, String zipfile)
{
try
{
final int BUFFER = 8192;
BufferedInputStream origin = null;
File outzip = new File(zipfile);
if (outzip.exists())
outzip.delete();
FileOutputStream dest = new FileOutputStream(zipfile);
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
byte data[] = new byte[BUFFER];
String nomearquivo = filename.substring(filename.lastIndexOf("/") + 1);
FileInputStream fi = new FileInputStream(filename);
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(nomearquivo);
out.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0, BUFFER)) != -1)
{
out.write(data, 0, count);
}
origin.close();
fi.close();
out.flush();
out.finish();
out.close();
return true;
} catch (IOException ioe) {
return false;
}
catch (Exception e)
{
return false;
}
}
//Método responsável em descompactar o banco de dados
public static boolean UnZipar(String filename, String DestinyDir)
{
try
{
final int BUFFER_SIZE = 4096;
BufferedOutputStream bufferedOutputStream = null;
FileInputStream fileInputStream;
fileInputStream = new FileInputStream(filename);
ZipInputStream zipInputStream
= new ZipInputStream(new BufferedInputStream(fileInputStream));
ZipEntry zipEntry;
while ((zipEntry = zipInputStream.getNextEntry()) != null){
String zipEntryName = zipEntry.getName();
File file = new File(DestinyDir+"/" + zipEntryName);
if (file.exists())
file.delete();
byte buffer[] = new byte[BUFFER_SIZE];
FileOutputStream fileOutputStream = new FileOutputStream(file);
bufferedOutputStream = new BufferedOutputStream(fileOutputStream, BUFFER_SIZE);
int count;
while ((count = zipInputStream.read(buffer, 0, BUFFER_SIZE)) != -1)
{
bufferedOutputStream.write(buffer, 0, count);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
}
zipInputStream.close();
//deleta o arquivo zip
File file = new File(filename);
file.delete();
return true;
} catch (IOException ioe) {
return false;
}
catch (Exception e)
{
return false;
}
}