حذف فایل ها در آرشیو ZIP در C#.NET

در حین کار با آرشیوها از داخل برنامه های دات نت، ممکن است لازم باشد فایل های داخل یک ZIP را دستکاری کنید. در پست قبلی، نحوه افزودن فایل‌ها/پوشه‌ها را در آرشیو ZIP مشاهده کرده‌اید. در این مقاله یاد می گیرید که چگونه فایل های داخل آرشیو ZIP را به صورت برنامه نویسی در سی شارپ حذف کنید. پس بیایید شروع کنیم.

C# .NET API برای حذف فایل های داخل آرشیو ZIP

Aspose.ZIP for .NET یک API قدرتمند است که طیف گسترده ای از ویژگی های بایگانی را ارائه می دهد. این به شما امکان می دهد آرشیو فرمت های محبوب از جمله ZIP، TAR، 7z و GZip را ایجاد و دستکاری کنید. ما از این API برای حذف پویا فایل های داخل بایگانی ZIP استفاده می کنیم. می توانید API را از NuGet یا دانلود DLL را نصب کنید و به صورت دستی به آن ارجاع دهید.

PM> Install-Package Aspose.Zip 

حذف فایل های داخل آرشیو ZIP در سی شارپ

دو راه برای حذف فایل های داخل بایگانی ZIP با استفاده از Aspose.ZIP برای دات نت وجود دارد. یکی از ایندکس فایل استفاده می کند در حالی که دیگری از کلاس ArchiveEntry استفاده می کند. بیایید ببینیم که چگونه از هر دو روش ذکر شده استفاده کنیم.

با استفاده از ArchiveEntry یک فایل را در ZIP حذف کنید

Aspose.ZIP برای دات نت هر فایل/پوشه داخل یک ZIP را به عنوان یک شی ArchiveEntry نشان می دهد و همه فایل ها و پوشه ها مجموعه ای از اشیاء ArchiveEntry را می سازند. بنابراین، برای حذف یک فایل از ZIP، می توانید به شی ArchiveEntry مربوطه از مجموعه دسترسی داشته باشید و آن را حذف کنید. مراحل زیر برای حذف یک فایل از آرشیو ZIP در سی شارپ آمده است.

  • بایگانی ZIP را با استفاده از کلاس Archive بارگیری کنید.
  • مدخل های موجود در مجموعه Archive.Entries را مرور کنید.
  • فایل ها/پوشه های مورد نظر را فیلتر کرده و به لیست اضافه کنید.
  • با استفاده از روش Archive.DeleteEntry(ArchvieEntry) هر ورودی را در لیست حذف کنید.
  • بایگانی ZIP به روز شده را با استفاده از روش Archive.Save(string) ذخیره کنید.

نمونه کد زیر نحوه حذف فایل های داخل آرشیو ZIP در سی شارپ را نشان می دهد.

// بایگانی ZIP را بارگیری کنید
using (var archive = new Archive("Archives/archive.zip"))
{
    // لیستی برای نگه داشتن فایل هایی که باید حذف شوند
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // از طریق ورودی های ZIP حلقه بزنید
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // فایل/پوشه را به لیست اضافه کنید
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // تمام ورودی های لیست شده را حذف کنید
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // ذخیره آرشیو به روز شده
    archive.Save("Archives/updated-archive.zip");
}

با استفاده از Index یک فایل را در ZIP حذف کنید

همچنین می توانید ورودی های ZIP را با استفاده از فهرست آنها حذف کنید. مراحل زیر برای حذف یک فایل/پوشه از آرشیو ZIP با استفاده از فهرست آن آورده شده است.

  • بایگانی ZIP را با استفاده از کلاس Archive بارگیری کنید.
  • فایل را با مشخص کردن فهرست در روش Archive.DeleteEntry(int) حذف کنید.
  • بایگانی ZIP به روز شده را با استفاده از روش Archive.Save(string) ذخیره کنید.

نمونه کد سی شارپ زیر نحوه حذف یک فایل در آرشیو ZIP با استفاده از فهرست آن را نشان می دهد.

// بایگانی ZIP را بارگیری کنید
using (var archive = new Archive("Archives/archive.zip"))
{
    // فایل را بر اساس فهرست آن حذف کنید
    archive.DeleteEntry(0);

    // ذخیره آرشیو به روز شده
    archive.Save("Archives/updated-archive.zip");
}

مجوز API رایگان دریافت کنید

با دریافت [مجوز موقت رایگان] می توانید از Aspose.ZIP برای دات نت بدون محدودیت ارزیابی استفاده کنید.

نتیجه

در این مقاله نحوه حذف فایل ها از آرشیو ZIP در سی شارپ را یاد گرفتید. با کمک نمونه کد، نحوه حذف فایل ها با استفاده از کلاس ArchiveEntry یا ایندکس را دیدیم. اگر می‌خواهید درباره Aspose.ZIP برای دات‌نت اطلاعات بیشتری کسب کنید، می‌توانید به مستندات مراجعه کنید. همچنین، می‌توانید سوالات خود را از طریق [فروم 16 ما بپرسید.

همچنین ببینید