
مقدمهای بر آرشیوهای ZIP
آرشیوهای ZIP برای فشردهسازی و تجمیع یک یا چند فایل یا پوشه به یک کانتینر واحد ضروری هستند. این فرمت نه تنها اندازه فایل را برای ذخیرهسازی و انتقال کاهش میدهد، بلکه اطلاعات متادیتا را نیز حفظ میکند و مدیریت فایلها را آسانتر میسازد. آرشیوهای ZIP بهطور گستردهای در برنامههای دسکتاپ و وب برای کارهایی مانند بارگذاری، دانلود، اشتراکگذاری و ایمنسازی فایلها از طریق رمزنگاری استفاده میشوند.
در این مقاله، روشهای مختلف ایجاد برنامهنویسی آرشیوهای ZIP در C# را بررسی خواهیم کرد. شما یاد خواهید گرفت که چگونه:
- یک آرشیو ZIP با استفاده از C# ایجاد کنید
- چندین فایل را به یک آرشیو ZIP اضافه کنید
- پوشهها را به یک آرشیو ZIP اضافه کنید
- یک آرشیو ZIP با رمز عبور با استفاده از ZipCrypto ایجاد کنید
- آرشیو ZIP را با رمزنگاری AES رمزگذاری کنید
- حالت فشردهسازی موازی را تنظیم کنید
کتابخانه ZIP C#
Aspose.ZIP for .NET یک API قوی است که برای فشردهسازی و استخراج فایلها و پوشهها در برنامههای .NET طراحی شده است. این API ویژگیهایی مانند رمزنگاری AES برای ایمنسازی فایلهای شما در آرشیوهای ZIP ارائه میدهد. شما میتوانید به راحتی این API را از NuGet نصب کنید یا باینریها را از بخش Downloads دانلود کنید.
ایجاد یک آرشیو ZIP در C#
برای فشردهسازی یک فایل به یک آرشیو ZIP، مراحل زیر را دنبال کنید:
- یک FileStream برای آرشیو ZIP خروجی ایجاد کنید.
- فایل منبع را با یک شی FileStream باز کنید.
- کلاس Archive را نمونهسازی کنید.
- فایل را با استفاده از متد Archive.CreateEntry(string, FileStream) به آرشیو اضافه کنید.
- آرشیو 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#، مراحل زیر را دنبال کنید:
- یک FileStream برای آرشیو ZIP خروجی ایجاد کنید.
- کلاس Archive را نمونهسازی کنید.
- از کلاس DirectoryInfo برای مشخص کردن پوشهای که باید فشرده شود استفاده کنید.
- پوشه را با استفاده از متد Archive.CreateEntries(DirectoryInfo) به ZIP اضافه کنید.
- آرشیو 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 پوشش دادیم. همچنین فشردهسازی موازی برای مدیریت کارآمد فایلهای بزرگ را مورد بحث قرار دادیم. اگر سوالی دارید یا به کمک بیشتری نیاز دارید، میتوانید از طریق فروم با ما تماس بگیرید.