C# .NET Library untuk Format File Kompresi
Open Source Free .NET API untuk format pengarsipan file seperti ZIP, GZIP, TAR & BZIP2.
Pustaka SharpZipLib ditulis seluruhnya dalam C# untuk platform .NET. Ini diimplementasikan sebagai perakitan sehingga Anda dapat memasukkannya ke dalam proyek lain (dalam bahasa .NET apa pun).
Ini awalnya di-porting dari pustaka java.util.zip GNU Classpath sehingga dapat digunakan dengan SharpDevelop, yang membutuhkan kompresi GZIP & ZIP. Kemudian karena permintaan pengguna yang tinggi, pengarsipan BZIP2 dan Tar juga disertakan dalam pustaka.
Memulai dengan SharpZipLib
Anda harus memiliki .NET Framework 4.5 atau lebih tinggi untuk mengonfigurasi SharpZipLib. Setelah Anda memenuhi prasyarat, Anda dapat mengunduh repositori secara manual dari GitHub atau langsung mengambil rakitan dari NuGet.
Cara yang disarankan untuk menginstal SharpZipLib adalah dari NuGet karena tersedia sebagai Paket NuGet.
Instal SharpZipLib dari NuGet
Install-Package SharpZipLib
Perpustakaan .NET untuk Membuat & Mengekstrak File ZIP
SharpZipLib memungkinkan pengembang perangkat lunak untuk membuat file ZIP di dalam aplikasi .NET mereka sendiri. Pengembang dapat dengan mudah mengompres semua file yang tersedia di dalam direktori dan menetapkannya ke dalam satu file zip. ZIP adalah salah satu format file kompresi paling populer dan memberi pengguna fasilitas untuk mengurangi ukuran file. API juga mendukung ekstraksi konten file ZIP ke tempat pilihan pengguna
Ekstrak file dari ZIP - C#
// Open zip file
using (Stream fsInput = File.OpenRead("D:\\input.zip"))
using (var zf = new ZipFile(fsInput))
{
// Set password if required
zf.Password = "12345";
// Unzip data
foreach (ZipEntry zipEntry in zf)
{
if (!zipEntry.IsFile)
{
// Ignore directories
continue;
}
String entryFileName = zipEntry.Name;
var directoryName = "D:\\output\\test";
if (directoryName.Length > 0)
{
Directory.CreateDirectory(directoryName);
}
var buffer = new byte[4096];
using (var zipStream = zf.GetInputStream(zipEntry))
using (Stream fsOutput = File.Create("data.zip"))
{
StreamUtils.Copy(zipStream, fsOutput, buffer);
}
}
}
Buat File ZIP yang Dilindungi Kata Sandi
SharpZipLib memberi pengembang perangkat lunak kemampuan untuk mengompres semua file di dalam folder menjadi file ZIP dan menentukan kata sandi untuk file yang dibuat. Jika Anda ingin membuat file ZIP tanpa perlindungan, harap setel nilainya menjadi nol atau jangan nyatakan untuk meninggalkan file tanpa perlindungan kata sandi. Ini mendukung sejumlah besar file.
Buat file ZIP yang dilindungi kata sandi - C#
// Create a new ZIP file
using (FileStream fsOut = File.Create("D:\\output.zip"))
using (var zipStream = new ZipOutputStream(fsOut))
{
//0-9, 9 being the highest level of compression
zipStream.SetLevel(3);
// Set password
zipStream.Password = "12345";
// Add files
var files = Directory.GetFiles("D:\\sample");
foreach (var filename in files)
{
var fi = new FileInfo(filename);
// Make the name in zip based on the folder
var entryName = filename.Substring(1);
// Remove drive from name and fixe slash direction
entryName = ZipEntry.CleanName(entryName);
var newEntry = new ZipEntry(entryName);
// Note the zip format stores 2 second granularity
newEntry.DateTime = fi.LastWriteTime;
newEntry.Size = fi.Length;
zipStream.PutNextEntry(newEntry);
var buffer = new byte[4096];
using (FileStream fsInput = File.OpenRead(filename))
{
StreamUtils.Copy(fsInput, zipStream, buffer);
}
zipStream.CloseEntry();
}
}