alaincnes
Messages postés5Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention26 janvier 2007
-
24 janv. 2007 à 13:00
alaincnes
Messages postés5Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention26 janvier 2007
-
26 janv. 2007 à 10:45
Bonjour,
Je sais que la question a déjà été posée et qu'il y a soi disant plein de codes mais j'en ai essayé plus de 15 et aucun ne fonctionne.
Je cherche à dézipper un fichier contenant des répertoires.
Quelque soit le source utilisée j'ai toujours la meme erreur :
java.io.FileNotFoundException: XXX (Le chemin d'accès spécifié est introuvable)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.(Unknown Source)
at java.io.FileOutputStream.(Unknown Source)
at Zip.unzip(Zip.java:40)
at Zip.main(Zip.java:136)
En sachant que ce meme code fonctionne quand il n'y a pas de répertoire.
Quelqu'un peut il m'aider, m'indiquer une source fonctionnant ou autres ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 24 janv. 2007 à 17:08
Salut,
tu as essayé ce code (ICI) ? perso je ne l'ai pas testé mais bon defois que ... sinon va falloir que tu montre un peux ton code de décompresseion de ZIP
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 24 janv. 2007 à 17:37
nop je ne gerais qu'un document donc ca m'etonnerais que ca marche
sinon pour gerer les dossier si mes souvenir sont bon avec ZipEntry tu peux tester si tu as un dossir ou pas (patiente je lance eclipse)
donc apres faut voir comment c'est gere ...
deja pour dezippe quand il n'y a que des fichiers je fais ca :
ZipInputStream in = new ZipInputStream(new FileInputStream(file));
ZipEntry zi;
while ((zi = in.getNextEntry()) != null) {
File f = new File(zi.getName());
vf.add(f);
FileOutputStream out = new FileOutputStream(f);
int c = 0;
while ((c = in.read()) != -1) {
out.write(c);
}
out.close();
}
in.close();
mais je trouve ca long ... pour les gros fichier c pas top je vais essayer doptimiser ce soir
zi.isDirectory() te retourne si c'est un dossier ... donc ce que je ferais si j'etait toi je recupere le nom , je cree le dossier la ou tu le veux avec le nom que tu as recuperer ensuite tu passe directement a l'entree suivante et je suppose que tu aurras le dossier dans lequel l'entree est stocke
en pseudo code ca ferais un truc du genre
ZipInputStream in = new ZipInputStream(new FileInputStream(file));
ZipEntry zi;
while ((zi = in.getNextEntry()) != null) {
if(zi.isDirectory()){
new File("." + zi.getName()).mkdir();
continue;
}
File f = new File(zi.getName());
vf.add(f);
FileOutputStream out = new FileOutputStream(f);
int c = 0;
while ((c = in.read()) != -1) {
out.write(c);
}
out.close();
}
in.close();
j'ai pas teste a toi de voir
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"