Create ZIP in C#

مقدمه‌ای بر آرشیوهای ZIP

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

در این مقاله، روش‌های مختلف ایجاد برنامه‌نویسی آرشیوهای ZIP در C# را بررسی خواهیم کرد. شما یاد خواهید گرفت که چگونه:

کتابخانه ZIP C#

Aspose.ZIP for .NET یک API قوی است که برای فشرده‌سازی و استخراج فایل‌ها و پوشه‌ها در برنامه‌های .NET طراحی شده است. این API ویژگی‌هایی مانند رمزنگاری AES برای ایمن‌سازی فایل‌های شما در آرشیوهای ZIP ارائه می‌دهد. شما می‌توانید به راحتی این API را از NuGet نصب کنید یا باینری‌ها را از بخش Downloads دانلود کنید.

ایجاد یک آرشیو ZIP در C#

برای فشرده‌سازی یک فایل به یک آرشیو ZIP، مراحل زیر را دنبال کنید:

  1. یک FileStream برای آرشیو ZIP خروجی ایجاد کنید.
  2. فایل منبع را با یک شی FileStream باز کنید.
  3. کلاس Archive را نمونه‌سازی کنید.
  4. فایل را با استفاده از متد Archive.CreateEntry(string, FileStream) به آرشیو اضافه کنید.
  5. آرشیو ZIP را با متد Archive.Save(FileStream) ذخیره کنید.

در اینجا یک نمونه کد وجود دارد که نشان می‌دهد چگونه یک فایل را به یک آرشیو ZIP با استفاده از C# اضافه کنید:

افزودن چندین فایل به یک آرشیو ZIP در C#

برای افزودن چندین فایل به یک آرشیو ZIP، می‌توانید یکی از روش‌های زیر را انتخاب کنید:

استفاده از FileStream

از کلاس FileStream برای افزودن چندین فایل به آرشیو ZIP با متد Archive.CreateEntry(String, FileStream) استفاده کنید. به این صورت:

استفاده از FileInfo

به طور متناوب، می‌توانید از کلاس FileInfo برای افزودن فایل‌ها استفاده کنید. این روش فایل‌ها را با استفاده از کلاس FileInfo بارگذاری کرده و آن‌ها را با متد Archive.CreateEntry(String, FileInfo) به آرشیو ZIP اضافه می‌کند. مثال زیر را ببینید:

استفاده از مسیر فایل

شما همچنین می‌توانید فایل‌ها را مستقیماً با ارائه مسیرهای آن‌ها به متد Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings) اضافه کنید. به این صورت:

افزودن پوشه‌ها به یک آرشیو ZIP در C#

افزودن یک پوشه به یک آرشیو ZIP می‌تواند راهی راحت برای شامل کردن چندین فایل باشد. برای فشرده‌سازی یک پوشه در C#، مراحل زیر را دنبال کنید:

  1. یک FileStream برای آرشیو ZIP خروجی ایجاد کنید.
  2. کلاس Archive را نمونه‌سازی کنید.
  3. از کلاس DirectoryInfo برای مشخص کردن پوشه‌ای که باید فشرده شود استفاده کنید.
  4. پوشه را با استفاده از متد Archive.CreateEntries(DirectoryInfo) به ZIP اضافه کنید.
  5. آرشیو ZIP را با متد Archive.Save(FileStream) ذخیره کنید.

در اینجا یک نمونه کد وجود دارد که نشان می‌دهد چگونه یک پوشه را به یک آرشیو ZIP در C# اضافه کنید:

ایجاد یک ZIP با رمز عبور با استفاده از ZipCrypto در C#

برای افزایش امنیت، می‌توانید آرشیوهای ZIP با رمز عبور را با استفاده از رمزنگاری ZipCrypto ایجاد کنید. این کار با استفاده از کلاس ArchiveEntrySettings در سازنده کلاس Archive انجام می‌شود که به شما امکان می‌دهد نوع رمزنگاری را مشخص کنید.

در اینجا یک مثال از نحوه ایجاد یک آرشیو ZIP با رمز عبور با استفاده از ZipCrypto در C# آورده شده است:

ایجاد ZIP با رمز عبور با رمزنگاری AES

کتابخانه Aspose.ZIP for .NET همچنین از رمزنگاری AES برای ایمن‌سازی آرشیوهای ZIP پشتیبانی می‌کند. شما می‌توانید یکی از روش‌های رمزنگاری AES زیر را انتخاب کنید:

  • AES128
  • AES192
  • AES256

برای اعمال رمزنگاری AES، از کلاس AesEcryptionSettings استفاده کنید. به این صورت می‌توانید یک ZIP با رمز عبور و رمزنگاری AES در C# ایجاد کنید:

تنظیم حالت فشرده‌سازی موازی

برای مواردی که شامل چندین ورودی است، می‌توانید API را برای فشرده‌سازی موازی با استفاده از کلاس ParallelOptions پیکربندی کنید. Aspose.ZIP for .NET چندین حالت فشرده‌سازی موازی ارائه می‌دهد:

  • هرگز - در حالت موازی فشرده‌سازی نکنید.
  • همیشه - همیشه به صورت موازی فشرده‌سازی کنید (به مشکلات کمبود حافظه توجه کنید).
  • خودکار - به طور خودکار تصمیم بگیرید که آیا از فشرده‌سازی موازی بر اساس ورودی‌ها استفاده کنید یا خیر.

در اینجا یک مثال وجود دارد که نشان می‌دهد چگونه حالت فشرده‌سازی موازی را در حین فشرده‌سازی چندین فایل تنظیم کنید:

بیشتر درباره کتابخانه ZIP C# .NET بیاموزید

برای اطلاعات بیشتر درباره API ZIP C# ما با منابع زیر آشنا شوید:

آرشیوهای ZIP را به صورت آنلاین امتحان کنید

برنامه آنلاین رایگان ما را که بر اساس Aspose.ZIP for .NET است، برای فشرده‌سازی فایل‌ها به آرشیوهای ZIP به راحتی بررسی کنید.

نتیجه‌گیری

در این مقاله، شما یاد گرفتید که چگونه آرشیوهای ZIP را به‌طور برنامه‌نویسی در C# ایجاد کنید. نمونه‌های کد ارائه‌شده نشان می‌دهند که چگونه فایل‌ها و پوشه‌ها را به آرشیوهای ZIP اضافه کنید. همچنین ما نحوه ایجاد آرشیوهای ZIP با رمز عبور را با استفاده از روش‌های رمزنگاری ZipCrypto و AES پوشش دادیم. همچنین فشرده‌سازی موازی برای مدیریت کارآمد فایل‌های بزرگ را مورد بحث قرار دادیم. اگر سوالی دارید یا به کمک بیشتری نیاز دارید، می‌توانید از طریق فروم با ما تماس بگیرید.

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

استخراج یا استخراج فایل‌ها با استفاده از C#استخراج فایل‌ها در آرشیوهای ZIP با استفاده از C#ایجاد آرشیوهای 7z (7-Zip) در C# .NET
باز کردن یا استخراج فایل 7z (7zip) در C# .NETایجاد و استخراج آرشیوهای GZip با استفاده از C#تبدیل فایل‌های RAR به آرشیو ZIP در C#
تبدیل آرشیوهای ZIP به TAR در C#ایجاد یک آرشیو ZIP مسطح در C#ایجاد آرشیو خود استخراج‌کننده قابل اجرا در C#
ایجاد فایل‌های TAR.GZ و TAR.XZ در C#حذف فایل‌ها در یک آرشیو ZIP در C#استخراج آرشیوهای ZIP تو در تو در C#
ادغام چندین آرشیو ZIP یا TAR در C#چگونه فایل‌های ZIP ایجاد کنیماستخراج 7z به صورت آنلاین