Ciao a tutti.

Ho un problema riguardante l'estrazione di una entry da un archivio che è dentro una cartella dell'archivio stesso.

Io uso lo stesso codice che ho trovato tra i vari esempi della sun:

codice:
import java.io.*;
import java.util.*;
import java.util.zip.*;

public class UnZip2 {
   static final int BUFFER = 2048;
   public static void main (String argv[]) {
      try {
         BufferedOutputStream dest = null;
         BufferedInputStream is = null;
         ZipEntry entry;
         ZipFile zipfile = new ZipFile(argv[0]);
         Enumeration e = zipfile.entries();
         while(e.hasMoreElements()) {
            entry = (ZipEntry) e.nextElement();
            System.out.println("Extracting: " +entry);
            is = new BufferedInputStream
              (zipfile.getInputStream(entry));
            int count;
            byte data[] = new byte[BUFFER];
            FileOutputStream fos = new 
              FileOutputStream(entry.getName());
            dest = new 
              BufferedOutputStream(fos, BUFFER);
            while ((count = is.read(data, 0, BUFFER)) 
              != -1) {
               dest.write(data, 0, count);
            }
            dest.flush();
            dest.close();
            is.close();
         }
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}
Il problema è nel fatto che se la entry è contenuta in una cartella il metodo entry.getName restituisce una cosa del tipo directory/nomeEntry quindi alla riga

codice:
FileOutputStream fos = new FileOutputStream(entry.getName());
mi genera una

codice:
java.io.FileNotFoundException: jEdit-2.3pre4\jedit.jar (Impossibile trovare il percorso specificato)
invece se a quel codice sostituisco

codice:
FileOutputStream fos = new FileOutputStream("jedit.jar")
esegue tutto senza errori salvandomela nella cartella root del progetto.

Ora ho pensato posso usare il metodo split di string (su entry.getName()) e tenere solo l'ultimo valore (il vero nome del file senza directory) solo che io devo poter salvare il file dentro la stessa directrory dove si trova l'archivio e dentro una cartella chiamata dir001.

1) E' giusto come ho pensato di ovviare il problema dell'eccezione?
2) Come posso fare per eseguire il salvataggio all'interno di directory?