IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[Fichier Zip] mon url n'est pas prise en compte


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut [Fichier Zip] ZIP file must have at least one entry
    Bonjour, je voudrais creer un fichier zippé dans un dossier specifique, mais l'url que je passe en parametre n'est pas prise en compte (pourtant elle est valide). Ce qui fait que je retoruve mon fichier zippé toujours dans mon dossier de projet, dans mon workspace.

    Voici mon appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myZip.zip("Export_device8full.zip", "C:/temp/testreunis/export");
    et voici ma methode pour zipper :
    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
     
    static void zip(String zipName, String url) {
    try {
    		ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipName));
    		zip.setMethod(ZipOutputStream.DEFLATED);
    		zip.setLevel(Deflater.BEST_COMPRESSION);
    		File dataDirectories = new File(url);			             FileInputStream emplacement = new FileInputStream(dataDirectories);
    		byte[] bytes = new byte[emplacement.available()];
    		emplacement.read(bytes);
     
    		ZipEntry entry = new ZipEntry(url);
    		entry.setTime(dataDirectories.lastModified());
    		zip.putNextEntry(entry);
    		zip.write(bytes);
    		zip.closeEntry();
    		emplacement.close();
    		zip.close();
    	} 
    	catch (FileNotFoundException fileNotFound) {} 
    	catch (IOException io) {}
    }
    Si quelqu'un voit où peut se situer mon erreur, je lui en serais tres reconnaissant si il me l'indiquée
    Cependant je vais essayer de trouver moi aussi

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu aurais pompé du code sans le comprendre ?
    C'est le "zipName" qui est un chemin relatif ou absolu vers le fichier à zipper. Tu mets le nom sans répertoire, donc l'archive est créée dans le répertoire par défaut.
    Le second paramètre, "url", est le chemin à l'intérieur du zip.

    Donc pour placer le fichier zippé ailleurs, il faut ajouter un nom de répertoire à "zipName". Par contre, tu dois t'assurer que le ou les répertoires existent.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut
    J'avoue avoir trouvé sur internet ce code et pensais l'avoir compris mieux que ça
    Merci à toi dinobogan Je me fourvoyais completement

    Néanmoins, j'ai donc bien évidemment échangé mes parametres ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myZip.zip("C:/temp/testreunis/export", "Export_device8full.zip");
    mais maintenant, je n'ai plus du tout de résultat.

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut
    NAAAAAAAAAN c'est bon j'ai trouvé! et vite tellement mon erreur était grossiere. Je me precise, j'ai tout simplement pas donné un chemin correct. Il me fallais indiquer un nom de .zip à la fin de celui ci tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myZip.zip("C:/temp/testreunis/export/Export_device8full.zip", "");
    Bon et bien merci encore

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut
    Bonjour,
    J'ai un souci du meme type que le premier ...
    Maintenant je suis en train de trouver comment faire pour compresser plusieurs fichiers d'un dossier (donc compresser un dossier :] ).

    Mais j'ai un message d'erreur qui apparait dans la console pour me signaler :
    Exception in thread "main" java.util.zip.ZipException: ZIP file must have at least one entry
    at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:304)
    at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:146)
    at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:321)
    at test.Main.main(Main.java:36)
    Cela veux sans doute dire qu'il n'y a pas d'entrée. Je pense que mon erreur survient quand j'appel la methode avec le parametres (qui ne doivent pas être mis comme il faut)
    En tous cas un fichier zip est créé comme inscrit dans les parametres mais il est vide

    Voici l'appel que je fais dans le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ZipOutputStream stream = new ZipOutputStream(new FileOutputStream("C:/temp/testreunis/export/symbol.zip")); 
    		  	myZip.zipDirectory("C:/temp/testreunis/export/symbol", stream); 
    		  	stream.close();
    et voici ma methode pour zipper (je ne pense pas qu'elle soit faute car je me suis aidé d'un code trouvé sur internet et il me semble bon sauf erreur de ma part) :
    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
    public static void zipDirectory(String directory, ZipOutputStream stream) 
    	  { 
    	      try 
    	     {  
    	          Object zipDir = new File(directory); 
    	          String[] directoryList = ((File) zipDir).list(); 
    	          byte[] readBuffer = new byte[2156]; 
    	          int bytesIn = 0; 
    	          for(int i=0; i<directoryList.length; i++) 
    	          { 
    	              File f = new File(directoryList[i]); 
    	              if(f.isDirectory()) 
    	              { 
    	            	  String filePath = f.getPath(); 
    	            	  zipDirectory(filePath, stream); 
    	            	  continue; 
    	              } 
    	              FileInputStream fis = new FileInputStream(f); 
    	              ZipEntry anEntry = new ZipEntry(f.getPath()); 
    	              stream.putNextEntry(anEntry); 
    	              while((bytesIn = fis.read(readBuffer)) != -1) 
    	              { 
    	                  stream.write(readBuffer, 0, bytesIn); 
    	              } 
    	             fis.close(); 
    	          } 
    	     } 
    	     catch(Exception e) 
    	     {}
    	}
    J'espere que quelqu'un pourra me donner un petit coup de pouce Merci

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Par défaut ZIP file must have at least one entry
    Haaaa j'ai testé plein de truc et ça marche toujours pas...
    Lorsque je fait un affichage de f dans zipDirectory tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File f = new File(directoryList[i]); 
    System.out.println("f = "+f);
    ça m'affiche (dans mon cas) "10.xml" si il existe
    je l'ai supprimé pour voir et ça m'affiche "11.xml" (Autant là je comprend pas trop pourquoi car dans mon dossier il y a environ 70 fichiers .xml nommé 1.xml 2.xml etc jusqu'a 70.xml ...)

    Ensuite, lorsque je fait un affichage de directoryList j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    directoryList = [Ljava.lang.String;@19821f
    Enfin, je sais que durant l'execution on ne rentre pas dans le if(f.isDirectory()) et pourtant c'est bien un directory que j'indique car String directory correspond à "C:/temp/testreunis/export/symbol/" non ?

    Bref je cherche je cherche mais je bloque pas mal quand même,

    I send a SOS to the wold, HELP ME please !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Ma variable n'est pas prise en compte
    Par beegees dans le forum Langage
    Réponses: 4
    Dernier message: 12/05/2009, 10h29
  2. Réponses: 2
    Dernier message: 27/04/2009, 09h32
  3. Réponses: 1
    Dernier message: 18/03/2009, 12h01
  4. Configuration n'est pas prise en compte.
    Par ARachid dans le forum Visual C++
    Réponses: 0
    Dernier message: 15/07/2008, 11h25
  5. Réponses: 3
    Dernier message: 13/02/2008, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo