یک بایگانی استخراجکننده خودکار (SFX یا SEA) نوع خاصی از فایل است که حاوی دادههای فشرده به همراه دستورالعملهای اجرایی است. این آرشیو قابلیت استخراج فایل های موجود در خود را دارد. بنابراین، برای باز کردن بایگانی های خود استخراج کننده، نیازی به نرم افزار استخراج کننده یا کمپرسور خاصی ندارید. در این مقاله یاد می گیرید که چگونه از داخل برنامه های دات نت خود بایگانی های خود استخراج شونده اجرایی در سی شارپ ایجاد کنید.
- NET API برای ایجاد آرشیوهای خود استخراج شونده
- ایجاد یک آرشیو خود استخراج شونده در سی شارپ
- اجرای آرشیوهای خود استخراجی از خط فرمان
C# .NET API برای ایجاد آرشیوهای خود استخراج شونده
برای ایجاد آرشیوهای خود استخراج، از Aspose.ZIP برای دات نت استفاده می کنیم. این یک API قدرتمند و غنی است که به شما امکان میدهد ویژگیهای بایگانی را در برنامههای NET به راحتی خودکار کنید. علاوه بر این، از انواع فرمتهای آرشیو محبوب مانند ZIP، TAR و غیره پشتیبانی میکند. میتوانید DLL API را دانلود یا با استفاده از NuGet نصب کنید.
PM> Install-Package Aspose.Zip
ایجاد یک آرشیو خود استخراج شونده در سی شارپ
با فرض اینکه Aspose.ZIP را برای دات نت نصب کرده اید، شروع به ایجاد یک بایگانی خود استخراج می کنیم. از آنجایی که این یک بایگانی اجرایی خواهد بود، پسوند آن .exe خواهد بود. مراحل زیر برای ایجاد یک آرشیو خود استخراجی اجرایی در سی شارپ آمده است.
- ابتدا یک شی FileStream جدید برای بایگانی ایجاد کنید.
- سپس، یک شی از کلاس Archive ایجاد کنید.
- با استفاده از روش Archive.CreateEntry(string, string) فایل ها را به آرشیو اضافه کنید.
- یک شی از کلاس SelfExtractorOptions ایجاد کنید تا گزینه هایی را برای آرشیو خود استخراجی مشخص کنید.
- گزینه هایی مانند عنوان، نماد و غیره را تنظیم کنید.
- در نهایت، با استفاده از روش Archive.Save(FileStream, new ArchiveSaveOptions()) فایل بایگانی خود استخراج شده را ذخیره کنید.
نمونه کد زیر نحوه ایجاد یک آرشیو خود استخراجی اجرایی در دات نت را نشان می دهد.
// برای ذخیره آرشیو SFX، FileStream ایجاد کنید
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
// یک آرشیو جدید ایجاد کنید
using (var archive = new Archive())
{
// فایل ها/پوشه ها را به آرشیو اضافه کنید
archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");
// ایجاد و تنظیم گزینه برای بایگانی SFX
var sfxOptions = new SelfExtractorOptions()
{
ExtractorTitle = "Extractor",
CloseWindowOnExtraction = true,
};
// ایجاد آرشیو SFX
archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
}
}
اجرای آرشیوهای خود استخراج با استفاده از خط فرمان
آرشیو self-extracting که در قسمت قبل ایجاد کردیم با دوبار کلیک کردن روی آن قابل استخراج است. اما اگر می خواهید از خط فرمان استفاده کنید، می توانید با دستور زیر آرشیو را استخراج کنید.
C:>archive.exe -autoExtract
در اینجا، -autoExtract گزینه اصلی است که به شما امکان می دهد آرشیو را استخراج کنید. در صورتی که آرشیو با رمز عبور محافظت می شود، می توانید رمز عبور را با استفاده از گزینه -password، همانطور که در دستور زیر نشان داده شده است، تعیین کنید.
C:>archive.exe -autoExtract -password:T0p$ecret
لیست کامل دستورات برای کار با یک بایگانی خود استخراج کننده اجرایی در [این مقاله] ارائه شده است.
یک مجوز API رایگان دریافت کنید
با دریافت [مجوز موقت رایگان] می توانید از Aspose.ZIP برای دات نت بدون محدودیت ارزیابی استفاده کنید.
نتیجه
در این مقاله نحوه ایجاد آرشیوهای خود استخراج شونده (SFX یا SEA) در سی شارپ را یاد گرفتید. علاوه بر این، نحوه استخراج آرشیو خود استخراج با استفاده از خط فرمان را مورد بحث قرار داده ایم. شما به سادگی می توانید Aspose.ZIP را برای دات نت نصب کنید و نمونه کد ارائه شده را در برنامه های دات نت خود جاسازی کنید. علاوه بر این، میتوانید با استفاده از اسناد Aspose.ZIP برای داتنت اطلاعات بیشتری کسب کنید. همچنین، میتوانید سؤالات خود را در [فروم 14 ما ارسال کنید.