Sto cercando di realizzare una procedura che zippi il contenuto della directory passatale, ma il file zip che mi viene generato, contiene i files vuoti (i nomi sono giusti, ma non contengono neanche un byte).

Posto il codice:
FileOutputStream fout = null;
try
{
fout = new FileOutputStream(cartella + File.separator + "archivio.zip");
}
catch(FileNotFoundException ex)
{
ex.printStackTrace();
}

Utils.zippaOrdine(new File(cartella), fout);

Ecco la funzione:

public static void zippaOrdine(File cartella, FileOutputStream fout)
{
File[] files = cartella.listFiles();
boolean trovato = false;

ZipOutputStream zout = new ZipOutputStream(fout);

try
{
for (int i = 0; i < files.length; i++)
{
if (files[i].isDirectory())
{
zippaOrdine(files[i], fout);
}
else
{
if (!files[i].getName().equals("archivio.zip"))
{
System.out.println("Zippo: " + files[i].getName());
trovato = true;
ZipEntry ze = new ZipEntry(files[i].getName());
zout.putNextEntry(ze);
zout.closeEntry();
}
}
}
if (trovato)
zout.close();
}
catch(ZipException ex)
{
System.out.println("Errore nello zippaggio: " + ex.getMessage());
}
catch(IOException ex)
{
System.out.println("Errore nello zippaggio: " + ex.getMessage());
}
}