Infernus Posté(e) 16 juillet 2010 Posté(e) 16 juillet 2010 Voilà, après avoir fait quelques recherches je n'ai pas trouvé comment décompresser un rar :( Quelqu'un aurait un lien ou une api ? :|
Profete162 Posté(e) 17 juillet 2010 Posté(e) 17 juillet 2010 Pour info, voici ma proposition pour un fichier zip. Si l'un de vous avait une idée pour un fichier *.rar: public void dlSamples() throws IOException{ byte [] buf = new byte[bUFFER_SIZE]; URL url = null; ZipInputStream zis = null; try { url = new URL(MY_ZIP_FILE_URL); //InputStream is = conn.getInputStream(); InputStream is = null; try{ is = url.openStream(); } finally { } zis = new ZipInputStream(new BufferedInputStream(is)); ZipEntry entry = null; while((entry = zis.getNextEntry()) != null) { String name=entry.getName(); //Juste une ligne à cause de mon Mac qui crée des fichiers zarbis, du genre les thumbs.db sous windows. Il y a des fichiers indésirables dans le zip à ne pas extraire. if(!(name.contains("__MACOSX") || name.contains(".DS_Store"))){ Log.i(TAG, ROOT + File.separatorChar + entry.getName()); File f = new File(ROOT + File.separatorChar + entry.getName()); if(entry.isDirectory()) { if(!f.exists()) { f.mkdirs(); } continue; } f.createNewFile(); FileOutputStream fos = new FileOutputStream(f); BufferedOutputStream bos = new BufferedOutputStream(fos, BUFFER_SIZE); int nbRead; try { while ((nbRead = zis.read(buf)) > 0) { bos.write(buf, 0, nbRead); } } finally { bos.flush(); bos.close(); fos.close(); } } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(zis != null) { zis.close(); } } System.out.println("c'est fini !"); }
Infernus Posté(e) 17 juillet 2010 Auteur Posté(e) 17 juillet 2010 Ta proposition fonctionne parfaitement avec les zips c'est nickel :D Mais ca m'interesserai quand même si quelqu'un avait trouvé un equivalent pour les rar, ne serait-ce qu'a titre d'information. Parce que je n'ai pas envi d'obliger mes utilisateurs à installer Androzip
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.