Quelqu'un a-t-il de l'expérience avec la bibliothèque TrueZip java? J'essaie de faire ce qui devrait être une tâche simple, décompresser une archive qui contient des sous-dossiers, et jusqu'à présent je n'ai pas réussi à la faire fonctionner.TrueZip récursif décompresser?
(La raison pour laquelle j'utilise TrueZip est à cause de la encoding foreign character bug dans les méthodes de java.util.zip)
En regardant l'API, il semble que file.archiveCopyAllTo() est leur méthode « dézipper ». Cependant, le code ci-dessous ne fonctionne que si mon archive est plate et ne contient que des fichiers. Il échoue s'il y a des sous-dossiers.
private static void testUnzip(String zipPath, File unzipFolder)
{
de.schlichtherle.io.File zipFile = new de.schlichtherle.io.File(zipPath);
boolean result = zipFile.archiveCopyAllTo(unzipFolder);
System.out.println("UNZIP RESULT: " + result);
}
Ou si quelqu'un sait un autre moyen pour décompresser les archives avec possibles caractères non-ASCII dans les noms de fichiers, ce serait génial aussi ... merci!
EDIT: J'ai abandonné l'utilisation de TrueZIP. J'ai été capable d'utiliser org.apache.tools.zip pour extraire des fichiers avec des caractères non-ASCII dans les noms de fichiers. Cette API est plus logique pour moi aussi ...
ugh, ils ont leur propre classe de fichier? Cela me rendrait confus à la mort. –
Vous pouvez essayer ce 'zipFile.archiveCopyAllTo (unzipFolder, ArchiveDetector.DEFAULT, ArchiveDetector.NULL);' – cubanacan
Si cela ne vous aide pas, alors vous devriez utiliser TrueZIP 6 ou version ultérieure, qui ne décompressez récursivement qu'avec juste votre code. – cubanacan