1. Produk
  2.   Mampatan
  3.   .NET
  4.   SharpZipLib
 
  

Perpustakaan C# .NET untuk Format Fail Pemampatan

Open Source Free .NET API untuk format pengarkib fail seperti ZIP, GZIP, TAR & BZIP2.

Pustaka SharpZipLib ditulis sepenuhnya dalam C# untuk platform .NET. Ia dilaksanakan sebagai perhimpunan dan supaya anda boleh memasukkannya ke dalam projek lain (dalam mana-mana bahasa .NET).

Ia pada asalnya dialihkan daripada perpustakaan GNU Classpath java.util.zip supaya ia boleh digunakan dengan SharpDevelop, yang memerlukan pemampatan GZIP & ZIP. Kemudian disebabkan permintaan pengguna yang tinggi, pengarkiban BZIP2 dan Tar turut disertakan dalam pustaka.

Previous Next

Bermula dengan SharpZipLib

Anda perlu mempunyai .NET Framework 4.5 atau lebih tinggi untuk mengkonfigurasi SharpZipLib. Setelah anda memenuhi prasyarat, anda boleh memuat turun repositori secara manual daripada GitHub atau mengambil terus pemasangan daripada NuGet.

Cara yang disyorkan untuk memasang SharpZipLib adalah daripada NuGet kerana ia tersedia sebagai Pakej NuGet

Pasang SharpZipLib daripada NuGet

 Install-Package SharpZipLib

Perpustakaan NET untuk Mencipta & Mengekstrak Fail ZIP

SharpZipLib membolehkan pembangun perisian mencipta fail ZIP di dalam aplikasi .NET mereka sendiri. Pembangun boleh dengan mudah memampatkan semua fail yang tersedia di dalam direktori dan menetapkannya ke dalam satu fail zip. ZIP ialah salah satu format fail pemampatan yang paling popular dan memberikan kemudahan kepada pengguna untuk mengurangkan saiz fail. API juga menyokong mengekstrak kandungan fail ZIP ke tempat pilihan pengguna

Ekstrak fail 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 Fail ZIP Dilindungi Kata Laluan

SharpZipLib memberikan pembangun perisian keupayaan untuk memampatkan semua fail di dalam folder ke dalam fail ZIP dan menentukan kata laluan untuk fail yang dibuat. Jika anda ingin mencipta fail ZIP tanpa perlindungan, sila tetapkan nilainya kepada null atau jangan isytiharkan ia meninggalkan fail tanpa sebarang perlindungan kata laluan. Ia menyokong sejumlah besar fail.

Buat fail ZIP yang dilindungi kata laluan - 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();
  }
}
 Melayu