هنگام کار با آرشیوها از داخل برنامههای NET خود، ممکن است لازم باشد چندین فایل ZIP یا TAR را ادغام کنید. به عنوان مثال، ممکن است بخواهید فایلها و پوشهها را از چندین آرشیو استخراج کرده و در یک آرشیو قرار دهید. برای دستیابی به آن، این مقاله نحوه ادغام چندین فایل ZIP یا TAR در C# را پوشش میدهد. ما ادغام ZIP در ZIP، TAR به TAR، ZIP در TAR و TAR در ZIP را پوشش خواهیم داد.
- C# API برای ادغام فایل های ZIP و TAR
- ادغام چندین فایل ZIP در سی شارپ
- ادغام چندین فایل TAR در سی شارپ
- ترکیب ZIP با TAR در سی شارپ
- ترکیب TAR با ZIP در سی شارپ
C# .NET API برای ادغام فایل های ZIP و TAR
برای ادغام چندین آرشیو ZIP و TAR، از Aspose.ZIP برای NET استفاده می کنیم. این یک API .NET غنی از ویژگی ها است که به شما امکان می دهد فرمت های مختلف آرشیو محبوب را ایجاد و دستکاری کنید. میتوانید DLL API را دانلود یا مستقیماً با استفاده از NuGet نصب کنید.
PM> Install-Package Aspose.Zip
ادغام چندین فایل ZIP در سی شارپ
بیایید سفر خود را برای ادغام آرشیوها با فرمت ZIP آغاز کنیم. ما دو بایگانی ZIP را می گیریم و ورودی های آنها را در یک فایل ZIP جمع می کنیم. مراحل زیر برای ادغام چندین فایل ZIP در سی شارپ آمده است.
- اولین فایل ZIP را با استفاده از کلاس Archive بارگیری کنید.
- به طور مشابه، دومین فایل ZIP را با استفاده از کلاس Archive بارگیری کنید.
- اکنون، با استفاده از مجموعه Archive.Entries ورودی های ZIP اول را مرور کنید.
- با استفاده از روش ArchiveEntry.Open().CopyTo(MemoryStream) هر ArchiveEntry را در یک شی MemoryStream کپی کنید.
- با استفاده از روش Archive.CreateEntry(string, MemoryStream) ورودی را به ZIP دوم اضافه کنید.
- ZIP ادغام شده را با استفاده از روش Archive.Save(string) به عنوان یک فایل جداگانه ذخیره کنید.
نمونه کد زیر نحوه ادغام دو فایل ZIP در سی شارپ را نشان می دهد.
// بایگانی ZIP منبع را بارگیری کنید
using (Archive sourceArchive = new Archive("Archives/SourceArchive.zip"))
{
// بایگانی ZIP مقصد را بارگیری کنید
using (Archive destArchive = new Archive("Archives/DestinationArchive.zip"))
{
// روی ورودی ها تکرار کنید
foreach (ArchiveEntry entry in sourceArchive.Entries)
{
// بررسی اینکه ورودی یک دایرکتوری نیست. ورودی هایی که دایرکتوری هستند نادیده گرفته می شوند، اما فایل های آنها با رعایت مسیرهای نسبی اضافه می شوند.
if (!entry.IsDirectory)
{
// بارگذاری ورودی به جریان حافظه
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// ورودی را به ZIP مقصد اضافه کنید
destArchive.CreateEntry(entry.Name, mem);
}
}
// آرشیو ادغام شده را جداگانه ذخیره کنید
destArchive.Save("Archives/merged-archive.zip");
}
}
ادغام چندین فایل TAR در سی شارپ
اکنون بیایید نحوه ادغام چندین آرشیو TAR در سی شارپ را بررسی کنیم. مراحل زیر برای دستیابی به این مهم است.
- اولین فایل TAR را با استفاده از کلاس TarArchive بارگیری کنید.
- به طور مشابه، دومین فایل TAR را با استفاده از کلاس TarArchive بارگذاری کنید.
- اکنون، با استفاده از مجموعه TarArchive.Entries، ورودی های اولین TAR را مرور کنید.
- با استفاده از روش TarEntry.Open().CopyTo(MemoryStream) هر TarEntry را در یک شی MemoryStream کپی کنید.
- با استفاده از روش TarArchive.CreateEntry(string, MemoryStream) ورودی را به TAR دوم اضافه کنید.
- TAR ادغام شده را با استفاده از روش TarArchive.Save(string) ذخیره کنید.
نمونه کد زیر نحوه ادغام چندین فایل TAR در سی شارپ را نشان می دهد.
// بایگانی TAR منبع را بارگیری کنید
using (TarArchive sourceArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// بایگانی TAR مقصد را بارگیری کنید
using (TarArchive destArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// روی ورودی ها تکرار کنید
foreach (TarEntry entry in sourceArchive.Entries)
{
// بررسی اینکه ورودی یک دایرکتوری نیست. ورودی هایی که دایرکتوری هستند نادیده گرفته می شوند، اما فایل های آنها با رعایت مسیرهای نسبی اضافه می شوند.
if (!entry.IsDirectory)
{
// بارگذاری ورودی به جریان حافظه
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// ورودی را به TAR مقصد اضافه کنید
destArchive.CreateEntry(entry.Name, mem);
}
}
// آرشیو ادغام شده را جداگانه ذخیره کنید
destArchive.Save("Archives/merged-archive.tar");
}
}
ادغام ZIP به TAR در سی شارپ
در این بخش نحوه ادغام یک فایل ZIP در بایگانی TAR در سی شارپ را خواهیم دید. مراحل زیر برای انجام این عملیات آورده شده است.
- فایل ZIP را با استفاده از کلاس Archive بارگیری کنید.
- فایل TAR را با استفاده از کلاس TarArchive بارگیری کنید.
- اکنون، ورودی های ZIP را با استفاده از مجموعه Archive.Entries حلقه بزنید.
- با استفاده از روش ArchiveEntry.Open().CopyTo(MemoryStream) هر ArchiveEntry را در یک شی MemoryStream کپی کنید.
- با استفاده از روش TarArchive.CreateEntry(string, MemoryStream) ورودی را به TAR اضافه کنید.
- فایل TAR را با استفاده از روش TarArchive.Save(string) ذخیره کنید.
نمونه کد زیر نحوه ادغام آرشیو ZIP در TAR را نشان می دهد.
// بایگانی ZIP منبع را بارگیری کنید
using (Archive zipArchive = new Archive("Archives/SourceArchive.zip"))
{
// بایگانی TAR مقصد را بارگیری کنید
using (TarArchive tarArchive = new TarArchive("Archives/DestinationArchive.tar"))
{
// روی ورودی ها تکرار کنید
foreach (ArchiveEntry entry in zipArchive.Entries)
{
// بررسی اینکه ورودی یک دایرکتوری نیست. ورودی هایی که دایرکتوری هستند نادیده گرفته می شوند، اما فایل های آنها با رعایت مسیرهای نسبی اضافه می شوند.
if (!entry.IsDirectory)
{
// بارگذاری ورودی به جریان حافظه
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// ورودی را به TAR مقصد اضافه کنید
tarArchive.CreateEntry(entry.Name, mem);
}
}
// آرشیو ادغام شده را جداگانه ذخیره کنید
tarArchive.Save("Archives/merged-archive.tar");
}
}
ترکیب TAR با ZIP در سی شارپ
مشابه مثال قبلی، می توانید یک فایل TAR را در ZIP ادغام کنید. نمونه کد زیر نحوه استخراج فایل ها از TAR و ادغام آنها در یک ZIP را نشان می دهد.
// بایگانی TAR را بارگیری کنید
using (TarArchive tarArchive = new TarArchive("Archives/SourceArchive.tar"))
{
// بایگانی ZIP را بارگیری کنید
using (Archive zipArchive = new Archive("Archives/DestinationArchive.zip"))
{
// روی ورودی ها تکرار کنید
foreach (TarEntry entry in tarArchive.Entries)
{
// بررسی اینکه ورودی یک دایرکتوری نیست. ورودی هایی که دایرکتوری هستند نادیده گرفته می شوند، اما فایل های آنها با رعایت مسیرهای نسبی اضافه می شوند.
if (!entry.IsDirectory)
{
// بارگذاری ورودی به جریان حافظه
MemoryStream mem = new MemoryStream();
entry.Open().CopyTo(mem);
// افزودن ورودی به ZIP
zipArchive.CreateEntry(entry.Name, mem);
}
}
// آرشیو ادغام شده را جداگانه ذخیره کنید
zipArchive.Save("Archives/merged-archive.zip");
}
}
مجوز API رایگان دریافت کنید
با دریافت [مجوز موقت رایگان] میتوانید از Aspose.ZIP برای داتنت بدون محدودیت ارزیابی استفاده کنید.
نتیجه
در این مقاله، نحوه ادغام چندین آرشیو ZIP یا TAR را به صورت برنامه نویسی در سی شارپ یاد گرفتید. به ویژه، ما نحوه ادغام فایلهای ZIP، فایلهای TAR، ZIP در TAR و TAR در ZIP را به صورت پویا پوشش دادهایم. برای کاوش بیشتر در مورد Aspose.ZIP برای دات نت، می توانید از اسناد دیدن کنید. همچنین، میتوانید سوالات خود را در [تالار گفتمان34 ما ارسال کنید.