/ / Korzystanie z .net 4.5 do utworzenia skompresowanego pliku - .net, vb.net

Użycie .net 4.5 do utworzenia spakowanego pliku - .net, vb.net

Czy ktoś wie, czy można skorzystać zwbudowane biblioteki zip w .net, aby spakować pojedynczy plik? Wbudowane procedury TYLKO pozwalają na spakowanie zawartości folderu, a ja szukam kodu, który pozwoli spakować plik BEZ konieczności tworzenia folderu (tymczasowego lub innego), w którym musimy KOPIOWAĆ pliki, a następnie utwórz plik zip.

Każda biblioteka kodów pocztowych, której użyłem na planecie Ziemia, pozwalała wybrać plik, a następnie skompresować go. Biblioteki .net wymuszają skopiowanie pliku do folderu, a następnie polecenie:

ZipFile.CreateFromDirectory(strFolder, strToFile, CompressionLevel.Fastest, False)

Tak więc powyżej, wbudowane procedury TYLKO pozwalająspakowanie folderu. W przypadku DUŻYCH plików najpierw muszę skopiować wszystkie pliki do tego folderu - zajmuje to dużo czasu i na koniec dnia nie powinno być wymagane.

Czy ktoś wie, jak korzystać z wbudowanych procedur zip (.net 4.5), aby skompresować pojedynczy plik bez konieczności kopiowania pliku do folderu?

Odpowiedzi:

1 dla odpowiedzi № 1

Użyj klasy ZipArchive zamiast ZipFile i jego metoda rozszerzenia CreateEntryFromFile.

using(var file = new FileStream(fileName)
using(var archive = new ZipArchive(zipFile)
{
archive.CreateEntryFromFile(sourceFile, fileNameInZip);
}

-1 dla odpowiedzi № 2

patrzeć na to i to

Możesz zrobić wszystko, co chcesz.

Na przykład możesz utworzyć ZipArchiveEntry w twoim nowym ZipArchive twojego nowego FileStream