*Inspiré sur le sujet /http://www.developpez.net/forums/d11943/java/general-java/apis/io/fichier-zip-zipper-fichier/*

Bonjour,

J'ai un soucis au moment de créer mon archive, j'ai utilisé la méthode save(unString).

Mon problème est qu'il va créer une archive en incluant le chemin que je lui transmets.

Je souhaiterais avec une archive de ce type
|_Mon fichier
|_Mon fichier2

et non:
|_ICI
...|_LE
......|_CHEMIN
.........|_Mon fichier
.........|_Mon fichier2

Je n'ai pas trouvé de solution.... une idée?

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    private void save(String zipName) {
	try {
	    ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipName)); 
	    zip.setMethod(ZipOutputStream.DEFLATED); 
	    zip.setLevel(Deflater.BEST_COMPRESSION);
 
	    File dataDirectories = new File("ICI/LE/CHEMIN");
	    zipDirectory(dataDirectories, zip);
	    zip.close();
	} catch (FileNotFoundException fileNotFound) {}
	catch (IOException io) {}
    }
 
    private void zipDirectory(File directory, ZipOutputStream zip) {
	String[] listFile = directory.list();
	for (int i = 0; i < listFile.length; i++) {
	    try {
		File file = new File(directory.getPath()+"/"+listFile[i]);
		if (file.isDirectory()) zipDirectory(file, zip);
		else {
		    FileInputStream in = new FileInputStream(file);
		    byte[] bytes = new byte[in.available()];
		    in.read(bytes);
		    in.close();
 
		    ZipEntry entry = new ZipEntry(file.getPath());
		    entry.setTime(file.lastModified());
		    zip.putNextEntry(entry);
		    zip.write(bytes);
		    zip.closeEntry();
		}
	    } catch (FileNotFoundException fileNotFound) {}
	    catch (IOException io) {}
	}
    }