zip/compresser un dossier plein de fichiers sur android
J'ai besoin de zip en place d'un "projet" dossier pour permettre aux utilisateurs de partager des projets par e-mail. J'ai trouvé une classe pour compresser plusieurs fichiers dans un zip, mais j'ai besoin de garder la structure des dossiers dans mon zip. Est-il possible de l'obtenir sur android? Merci à l'avance.
Pour clarifier, entendez-vous la Android un projet de développement ou un projet qui est développé dans l'app?
Projet développé dans l'application, désolé. Aussi je pense que c'est ce dont j'ai besoin: stackoverflow.com/questions/1399126/... mais quand je l'ai copié, j'ai essayé de mon mieux, mais impossible de trouver comment le la ligne: Deque<Fichier> file = new LinkedList<Fichier>(); pour travailler. Je sais Deque est une interface et LinkedList la met en œuvre, mais eclipes ne cesse de me donner des erreurs.
Passons sur le fait, d'avoir trouvé comment le faire après beaucoup de recherche de: crazysquirrel.com/computing/java/basics/...
Projet développé dans l'application, désolé. Aussi je pense que c'est ce dont j'ai besoin: stackoverflow.com/questions/1399126/... mais quand je l'ai copié, j'ai essayé de mon mieux, mais impossible de trouver comment le la ligne: Deque<Fichier> file = new LinkedList<Fichier>(); pour travailler. Je sais Deque est une interface et LinkedList la met en œuvre, mais eclipes ne cesse de me donner des erreurs.
Passons sur le fait, d'avoir trouvé comment le faire après beaucoup de recherche de: crazysquirrel.com/computing/java/basics/...
OriginalL'auteur Mark | 2011-07-13
Vous devez vous connecter pour publier un commentaire.
Ce code devrait faire l'affaire.
Remarque: vous devez ajouter le fichier des autorisations d'écriture pour votre application en ajoutant le WRITE_EXTERNAL_STORAGE la permission de votre manifest.xml fichier.
Hey @RaymondMachira. J'ai ajouté à la définition de getLastPathComponent. Il prend un chemin ("folder1/subfolder/example.txt") et renvoie "dossier1/sous-dossier/". Le fichier zip peut ne pas avoir le dossier contenant définie de sorte que nous devons à la bande sous la voie de sortie et l'ajouter.
Je commençais à vide nommé dossier à l'intérieur du fichier zip, la solution était de remplacer les fichiers source.getParent().longueur() avec sourceFile.getParent().length()+1.
Vous devez remplacer getLastPathComponent(String filePath) contenu en chemin.substring(filePath.lastIndexOf("/"))
Code - je suis l'ajout d'un correctif pour un bug que j'ai trouvé - lorsque vous essayez de décompresser sur windows, il échoue en raison d'analyse de problème de le premier "/" sur le chemin relatif donné à la ZipEntry objet. ===== code corrigé ==== Chaîne de relativePath = unmodifiedFilePath .substring(basePathLength+1);
OriginalL'auteur HailZeon
c'est comment je le fais:
ne fonctionne pas correctement si le dossier source contient un autre dossier
OriginalL'auteur SpyZip
Si vous utilisez un java.util.zip objet, alors vous pouvez écrire un script qui ne modifie pas la structure de répertoire.
OriginalL'auteur Charles
OriginalL'auteur Fang
Utiliser le zip4j de la bibliothèque à partir de ce emplacement. Importer le fichier jar de votre
"app/libs/"
dossier. Et utiliser le code suivant pour zip de vos fichiers/répertoires...OriginalL'auteur Sammie