2011-05-10 8 views
20

Jest podobny do 3,5 pytanie tutaj:Obsługa plików zip bez Third Party Lib w .NET 4.0?

Is there a built-in zip library in .NET 3.5?

że spekulują, że 4,0 musiałby go, ale nie mogę znaleźć żadnych informacji na jego temat. Jeśli nie, czy ktoś wie, dlaczego nie? Wydaje się, że byłoby dość wysoko na liście rzeczy do uwzględnienia wsparcia.

+1

Szukasz [ 'System.IO.Compression'] (http://msdn.microsoft.com/en-us/library/system.io.compression.aspx)? – pickypg

+3

no: "... ta klasa nie zapewnia z natury funkcjonalności dodawania plików lub wyodrębniania plików z archiwów ZIP." – user492238

+0

To prawda, ale nadal pozwala ci się rozwijać. Jeśli wyszukasz w okolicy "wiele plików GZipStream", zobaczysz, że wiele osób właśnie to zrobiło. – pickypg

Odpowiedz

9

Nie dla wersji 4.0, ale rozważa się klasę ZipArchive dla następnej wersji. Możesz znaleźć szczegółowe informacje na ten temat na BCL Team blog.

Edycja: W przeciwnym razie, zakładając, że jest nadal dostępna, i zależnie od definicji wbudowanej (przynajmniej pochodzi/pochodzi z Visual Studio), możesz użyć klas J # do spakowania plików zgodnie z opisem w tym artykuł: Using the Zip Classes in the J# Class Libraries to Compress Files and Data with C#

Edycja2: Należy zauważyć, że poniższe komentarze, że opcja J # prawdopodobnie nie jest właściwą opcją, z wyjątkiem pewnych niezwykłych okoliczności.

+3

Ohmygosh nie, nie używaj bibliotek J #. Obecnie nie mają wsparcia, jeśli się nie mylę, przez około 4 lata. Również w oparciu o Javę 1.1.4 i BEZ poprawek bezpieczeństwa w żadnym z nich. Użyj prawdziwej biblioteki zip. – Cheeso

+0

@Cheeso: Nie polecam go ogólnie, sam używam programu sharpziplib, ale wiem, że czasami mogą istnieć firmy, które nie zezwalają na tego rodzaju biblioteki, ale mogą być w porządku przy korzystaniu z bibliotek J #, ponieważ pochodzą z VS , więc w niektórych sytuacjach przy użyciu starszej wersji VS może to być opcja. –

15

Spójrz na przestrzeń nazw System.IO.Packaging, która zawiera obsługę plików ZIP, ale nie wszystkie funkcje plików ZIP.

Mimo to może wystarczyć dla twoich potrzeb.

+0

Próba użycia tych klas okazała się możliwa do pracy z takimi pakietami Nuget i podobnymi "pakietami" (prawdopodobnie również z plikami XAP), ale nie można parsować zwykłych plików ZIP jako takich. Jeśli twój przypadek użycia jest ograniczony do analizowania tego rodzaju plików, przestrzeń nazw System.IO.Packaging powinna być wystarczająca. –