Existe-t-il un moyen facile de ZIP récursif un répertoire qui peut contenir ou non un nombre de fichiers et un nombre quelconque de niveaux de sous-répertoires?Récursivement ZIP un répertoire contenant un nombre quelconque de fichiers et sous-répertoires en Java?
3
A
Répondre
1
-2
10
public final class ZipFileUtil {
public static void zipDirectory(File dir, File zipFile) throws IOException {
FileOutputStream fout = new FileOutputStream(zipFile);
ZipOutputStream zout = new ZipOutputStream(fout);
zipSubDirectory("", dir, zout);
zout.close();
}
private static void zipSubDirectory(String basePath, File dir, ZipOutputStream zout) throws IOException {
byte[] buffer = new byte[4096];
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
String path = basePath + file.getName() + "/";
zout.putNextEntry(new ZipEntry(path));
zipSubDirectory(path, file, zout);
zout.closeEntry();
} else {
FileInputStream fin = new FileInputStream(file);
zout.putNextEntry(new ZipEntry(basePath + file.getName()));
int length;
while ((length = fin.read(buffer)) > 0) {
zout.write(buffer, 0, length);
}
zout.closeEntry();
fin.close();
}
}
}
}
+0
Fonctionne bien pour moi, mais, pour une raison mystérieuse, ajoute également des fichiers comme '[email protected]' à l'archive. Une idée de ce que je fais mal? –
Questions connexes
- 1. Ajouter un dossier contenant des fichiers dans un fichier zip en utilisant JAVA
- 2. Nombre de fichiers dans un répertoire
- 3. Copiez les trois fichiers les plus récents dans un répertoire (récursivement) vers un autre répertoire spécifié
- 4. Obtenir le nombre de fichiers dans un dossier en Java
- 5. Renommer un fichier/dossier dans un fichier zip en Java?
- 6. Python: écraser un répertoire avec un autre répertoire contenant les mêmes fichiers
- 7. Récursivement PUT fichiers à un serveur distant en utilisant FTP
- 8. Comment créer un fichier zip en Java
- 9. Comment ajouter des fichiers et des répertoires à un fichier zip sans le répertoire racine?
- 10. Trouver le fichier le plus ancien (récursivement) dans un répertoire
- 11. Nombre d'octets de tous les fichiers gzip dans un répertoire
- 12. Déterminer le nombre de fichiers dans un répertoire
- 13. Obtenir le nombre de fichiers dans un répertoire
- 14. Meilleur moyen de compresser les fichiers en Python (zip un répertoire entier avec une seule commande)?
- 15. ImageMagik/UNIX: Comment traiter récursivement un répertoire imbriqué de photos?
- 16. java: comment puis-je créer une fonction qui supporte un nombre quelconque de paramètres?
- 17. Créer un fichier Zip dans Windows et extraction de fichiers Zip Dans Linux
- 18. Créer un mot de passe protégé zip en Java
- 19. Créer un tableau contenant des noms de fichiers dans un répertoire
- 20. Calcul du nombre de tableaux contenant un élément en perl
- 21. java servlet: générer un fichier zip à partir de BLOBs
- 22. C# et Zip manipulation de fichiers
- 23. Makefile et fichiers sous un répertoire
- 24. Utiliser wget pour récupérer récursivement un répertoire avec des fichiers arbitraires
- 25. Obtenir récursivement des fichiers dans un répertoire avec plusieurs sous-répertoires
- 26. Extrait répertoire à l'intérieur Zip
- 27. emacs supprimer le répertoire récursivement?
- 28. Dézipper un répertoire en C++
- 29. C# Comment boucler un grand nombre de dossiers et de fichiers récursivement sans utiliser une énorme quantité de mémoire
- 30. PHP - Sous-répertoire FTP récursivement?
j'ai vérifié Apache Commons Compress, et ce n'est pas là. Impair; "faire un fichier zip en dehors de ce répertoire" semble être une fonctionnalité assez commune. –
FYI: Vous pouvez le faire dans DotNetZip avec 'ZipFile.AddDirectory();' – Cheeso