Forums Développement Multimédia

Aller au contenu

Extension native pour déziper un fichier plante

CODE Actionscript

  • Vous ne pouvez pas répondre à ce sujet
Aucune réponse à ce sujet

#1 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 04 September 2013 - 15:56 PM

Bonjour,

j'ai un gros soucis avec une extension native pour android
je veux déziper un fichier
voilà mon code java
File f = new File("chemin de mon fichier");
File outputDir = new File ("dossier de sortie");
ZipHelper.unzip(f, outputDir);
et
import java.util.zip.*;
import java.io.*;
import java.util.Enumeration;
import org.apache.commons.io.IOUtils;
import android.util.Log;

public class ZipHelper
{
static public void unzip(File archive, File outputDir)
{
try {
Log.d("control","ZipHelper.unzip() - File: " + archive.getPath());
ZipFile zipfile = new ZipFile(archive);
for (Enumeration e = zipfile.entries(); e.hasMoreElements(); ) {
ZipEntry entry = (ZipEntry) e.nextElement();
unzipEntry(zipfile, entry, outputDir);
}
}
catch (Exception e) {
Log.d("control","ZipHelper.unzip() - Error extracting file " + archive+": "+ e);
}
}

static private void unzipEntry(ZipFile zipfile, ZipEntry entry, File outputDir) throws IOException
{
if (entry.isDirectory()) {
createDirectory(new File(outputDir, entry.getName()));
return;
}

File outputFile = new File(outputDir, entry.getName());
if (!outputFile.getParentFile().exists()){
createDirectory(outputFile.getParentFile());
}

Log.d("control","ZipHelper.unzipEntry() - Extracting: " + entry);
BufferedInputStream inputStream = new BufferedInputStream(zipfile.getInputStream(entry));
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFile));

try {
IOUtils.copy(inputStream, outputStream);
}
catch (Exception e) {
Log.d("control","ZipHelper.unzipEntry() - Error: " + e);
}
finally {
outputStream.close();
inputStream.close();
}
}

static private void createDirectory(File dir)
{
Log.d("control","ZipHelper.createDir() - Creating directory: "+dir.getName());
if (!dir.exists()){
if(!dir.mkdirs()) throw new RuntimeException("Can't create directory "+dir);
}
else Log.d("control","ZipHelper.createDir() - Exists directory: "+dir.getName());
}
}

je place le fichier commons-io-2.4.jar (que j'ai récupérer à l'adresse http://commons.apach...download_io.cgi) dans le dossier lib d'eclipse

si je fais une application Android classique, ça fonctionne impec
si je fais une extension native ça plante mon appli

LogCat d'eclipse me retourne

Citation

NoClassDefFoundError: org.apache.comons.io.IOUtils.copy
comme si la classe IOUtils n'était pas présente dans commons-io-2.4.jar ???

si quelqu'un sait d'où peut provenir le pb
merci de votre aide



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP