Désolé, même message que précédent
Bonjour,
J'ai un petit problème de création d'un fichier zip avec java.
Tout se passe correctement, et le fichier zip est bien créé, mais en le décompressant on voit toute toute l'arborescence à partir de la racine :
/Users/toto/Desktop/mondossier/fichiers
Il y a t-il un moyen de ziper un dossier à partir d'un dossier parent, dans mon exemple à partir de "Desktop" ?
voici mon main :
et ma classe de compression
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public static void main(String[] args) throws IOException { Compress compress = new Compress(); compress.zipDirectory("/Users/toto/Desktop/mondossier","mondossier"); }
Merci
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 public static void zipDirectory(String dir, String zipfile) throws IOException, IllegalArgumentException { // Check that the directory is a directory, and get its contents File d = new File(dir); if (!d.isDirectory()) throw new IllegalArgumentException("Not a directory: " + dir); String[] entries = d.list(); byte[] buffer = new byte[4096]; // Create a buffer for copying int bytesRead; ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); for (int i = 0; i < entries.length; i++) { File f = new File(d, entries[i]); if (f.isDirectory()) continue;//Ignore directory FileInputStream in = new FileInputStream(f); // Stream to read file ZipEntry entry = new ZipEntry(f.getPath()); // Make a ZipEntry out.putNextEntry(entry); // Store entry while ((bytesRead = in.read(buffer)) != -1) out.write(buffer, 0, bytesRead); in.close(); } out.close(); }
Jean-Pierre Astier
Partager