1. منتجات
  2.   ضغط
  3.   .NET
  4.   SharpZipLib
 
  

مكتبة C # .NET لضغط تنسيقات الملفات

Open Source Free .NET API لتنسيقات أرشيف الملفات مثل ZIP و GZIP و TAR & BZIP2.

مكتبة SharpZipLib مكتوبة بالكامل بلغة C # لمنصة .NET. يتم تنفيذه كتجميع وبالتالي يمكنك دمجه في مشاريع أخرى (بأي لغة من لغات .NET).

تم نقله في الأصل من مكتبة GNU Classpath java.util.zip بحيث يمكن استخدامه مع SharpDevelop ، والذي يحتاج إلى ضغط GZIP و ZIP. لاحقًا ، نظرًا لارتفاع طلب المستخدمين ، تم أيضًا تضمين أرشيف BZIP2 و Tar في المكتبة.

Previous Next

الشروع في العمل مع SharpZipLib

يجب أن يكون لديك .NET Framework 4.5 أو أعلى لتكوين SharpZipLib. بمجرد استيفاء المتطلبات الأساسية ، يمكنك تنزيل المستودع يدويًا من GitHub أو جلب التجميع مباشرة من NuGet.

الطريقة الموصى بها لتثبيت SharpZipLib هي من NuGet لأنها متوفرة في حزمة NuGet

قم بتثبيت SharpZipLib من NuGet

 Install-Package SharpZipLib

NET Library لإنشاء واستخراج ملفات ZIP

يتيح SharpZipLib لمطوري البرامج إنشاء ملف مضغوط داخل تطبيقات .NET الخاصة بهم. يمكن للمطورين ضغط جميع الملفات المتاحة داخل دليل بسهولة وتعيينها في ملف مضغوط واحد. يعد ZIP أحد أكثر تنسيقات ملفات الضغط شيوعًا ويمنح المستخدمين إمكانية تقليل حجم الملفات. تدعم واجهة برمجة التطبيقات أيضًا استخراج محتوى ملفات ZIP إلى مكان يختاره المستخدم

استخراج الملفات من 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);
    }
  }
}

قم بإنشاء ملف مضغوط محمي بكلمة مرور

يمنح SharpZipLib مطوري البرامج القدرة على ضغط جميع الملفات الموجودة داخل مجلد في ملف ZIP وتحديد كلمة مرور للملفات التي تم إنشاؤها. إذا كنت ترغب في إنشاء ملفات مضغوطة بدون حماية ، فيرجى تعيين قيمتها على "لاغية" أو عدم إعلان ترك الملف بدون أي حماية بكلمة مرور. وهو يدعم عددًا كبيرًا من الملفات.

إنشاء ملف مضغوط محمي بكلمة مرور - 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();
  }
}
 عربي