2011-05-11 1 views
2

This MSDN site a un exemple pour gzip un fichier. Alors, comment puis-je gzip un répertoire entier avec des sous-répertoires dans celui-ci?Gzip un répertoire qui a des sous-répertoires utilisant la classe GZipStream avec C#?

+1

duplication possible de [Comment compresser un répertoire avec les classes de compression .net intégrées?] (Http://stackoverflow.com/questions/900031/how-to-compress-a-directory-with-the-built -in-net-compression-classes) – Kev

+0

Aussi, voir: http://stackoverflow.com/questions/1001711/how-do-i-compress-a-file-with-gzipstream-and-maintain-meta-data- à propos de l'origine – Kev

Répondre

2

Puisque gzip ne fonctionne que sur des fichiers, je vous suggère de taper votre répertoire, puis gzip le fichier tar généré . Vous pouvez utiliser tar-cs ou SharpZipLib pour générer votre fichier tar.

0

Vous ne pouvez pas!

GZip a été créé pour le fichier, pas les répertoires :)

+2

+1. Vous pouvez cependant faire quelque chose comme, par exemple, créer une archive et gzip pour obtenir un fichier * .tar.gz. Ou juste zip le tout avec DotNetZip (http://dotnetzip.codeplex.com/) –

0

gzip fonctionne sur un flux simgle. Pour créer une archive multi-flux (multi-fichiers) en utilisant le gzipstream, vous devez inclure votre propre index. Fondamentalement, à son plus simple, vous écrivez les offsets de fichiers au début du flux de sortie, puis, lorsque vous le relisez, vous savez où sont les limites. Cette méthode ne serait pas compatible PKZIP. Pour être compatible, vous devez lire et implémenter le format ZIP ... ou utiliser quelque chose comme SharpZip, ou Zip.NET

Questions connexes