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