Advertisement
Guest User

er654+

a guest
Nov 20th, 2019
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. package projetselements;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.BufferedOutputStream;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileNotFoundException;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;
  10. import java.io.OutputStream;
  11. import java.util.zip.ZipEntry;
  12. import java.util.zip.ZipInputStream;
  13.  
  14. public class Zip{
  15. /**
  16. * décompresse le fichier zip dans le répertoire donné
  17. * @param folder le répertoire où les fichiers seront extraits
  18. * @param zipfile le fichier zip à décompresser
  19. * @throws FileNotFoundException
  20. * @throws IOException
  21. */
  22. public static void unzip(File zipfile, File folder) throws FileNotFoundException, IOException{
  23.  
  24. // création de la ZipInputStream qui va servir à lire les données du fichier zip
  25. ZipInputStream zis = new ZipInputStream(
  26. new BufferedInputStream(
  27. new FileInputStream(zipfile.getCanonicalFile())));
  28.  
  29. // extractions des entrées du fichiers zip (i.e. le contenu du zip)
  30. ZipEntry ze = null;
  31. try {
  32. while((ze = zis.getNextEntry()) != null){
  33.  
  34. // Pour chaque entrée, on crée un fichier
  35. // dans le répertoire de sortie "folder"
  36. File f = new File(folder.getCanonicalPath(), ze.getName());
  37.  
  38. // Si l'entrée est un répertoire,
  39. // on le crée dans le répertoire de sortie
  40. // et on passe à l'entrée suivante (continue)
  41. if (ze.isDirectory()) {
  42. f.mkdirs();
  43. continue;
  44. }
  45.  
  46. // L'entrée est un fichier, on crée une OutputStream
  47. // pour écrire le contenu du nouveau fichier
  48. f.getParentFile().mkdirs();
  49. OutputStream fos = new BufferedOutputStream(
  50. new FileOutputStream(f));
  51.  
  52. // On écrit le contenu du nouveau fichier
  53. // qu'on lit à partir de la ZipInputStream
  54. // au moyen d'un buffer (byte[])
  55. try {
  56. try {
  57. final byte[] buf = new byte[8192];
  58. int bytesRead;
  59. while (-1 != (bytesRead = zis.read(buf)))
  60. fos.write(buf, 0, bytesRead);
  61. }
  62. finally {
  63. fos.close();
  64. }
  65. }
  66. catch (final IOException ioe) {
  67. // en cas d'erreur on efface le fichier
  68. f.delete();
  69. throw ioe;
  70. }
  71. }
  72. }
  73. finally {
  74. // fermeture de la ZipInputStream
  75. zis.close();
  76. }
  77. }
  78. public static void main(String[] args) throws Exception {
  79. File zipfile = new File("zipfile.zip");
  80. File folder = new File("//home//etu//thec//Desktop");
  81.  
  82. Zip.unzip(zipfile, folder);
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement