2011-06-28 6 views
1

Je veux décompresser un fichier dans C# en utilisant l'espace de noms System.IO.Packaging. Je sais qu'il y a une bibliothèque zip, mais je préférerais d'abord explorer si je peux réaliser la même chose sans ajouter de dépendances supplémentaires.Décompresser un fichier zip dans C# en utilisant System.IO.Packaging

Voici mon code:

using (var fs = new FileStream(fn1, FileMode.Open)) { 
    using (var p = Package.Open(fs)) { 
     Console.WriteLine(p.GetRelationships().Count()); 
     Console.WriteLine(p.GetParts().Count()); 
    } 
} 
Console.Read(); 

L'utilisation d'un fichier zip que je trouve, je reçois 0 relations et 0 parties. Qu'est-ce que je fais mal?

+0

'ZipPackage' n'est en effet pas capable de gérer des archives zip arbitraires. Et je crois que c'est la raison pour laquelle la classe s'appelle 'ZipPackage' plutôt que' ZipArchive'. Probablement, nous aurons une implémentation 'ZipArchive' appropriée dans une future version du framework car l'équipe BCL a réellement [travaillé sur l'API] (http://blogs.msdn.com/b/bclteam/archive/2010/06/28/ working-with-zip-files-in-net.aspx) il y a quelque temps. – Regent

Répondre

1

Apparemment, bien que tous les fichiers System.IO.Packaging soient des fichiers zip, tous les fichiers zip ne sont pas conformes à System.IO.Packaging. En tant que tel, il est inutile de déballer les fichiers zip.

+0

Je n'irais pas aussi loin. Son utilité est juste limitée. –

Questions connexes