Salut tout le monde,
j'ai créé un fichier zip à partir d'un fichier source en utilisant les classes ZipOutputStream et ZipEntry et ça marche plus ou moins correctement
voici le code que j'ai utilisé pour cette opération:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 final ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(targetZipFileName)); zipOutputStream.setLevel(Deflater.DEFAULT_COMPRESSION); final File inputFile = new File(inputFileName); final FileInputStream fileInputStream = new FileInputStream(inputFile); zipOutputStream.putNextEntry(new ZipEntry(inputFileName)); int size = 0; final byte[] buffer = new byte[1024]; while ((size = fileInputStream.read(buffer, 0, buffer.length)) > 0) { zipOutputStream.write(buffer, 0, size); } zipOutputStream.closeEntry(); fileInputStream.close(); zipOutputStream.close();
voici le problème:
quand j’exécute ce code sur un fichier contenu dans une arborescence comme par exemple : C:\DossierA\DossierB\DossierC\file.txt
le fichier zip est généré correctement mais quand je l'ouvre avec 7Zip ou winrar, je tombe sur le dossier C: puis je dois l'ouvrir pour trouver DossierA, ensuite j'ouvre pour trouver DossierB,... jusqu'à trouver le fichier en question
ma question est comment je peux créer le fichier zip de sorte que quand je l'ouvre avec (par exemple) 7Zip, je tombe directement sur le fichier compressé sans parcourir l'arborescence dans laquelle il se trouve
merci d'avance
Partager