בזמן העבודה עם ארכיונים מתוך יישומי ה-.NET שלך, ייתכן שיהיה עליך למזג קבצי ZIP או TAR מרובים. לדוגמה, ייתכן שתרצה לחלץ קבצים ותיקיות ממספר ארכיונים ולהכניס אותם לארכיון אחד. כדי להשיג זאת, מאמר זה מכסה כיצד למזג קבצי ZIP או TAR מרובים ב-C#. נסקור את המיזוג של ZIP ל-ZIP, TAR ל-TAR, ZIP ל-TAR ו-TAR ל-ZIP.
- C# API למיזוג קובצי ZIP ו-TAR
- מיזוג קובצי ZIP מרובים ב-C#
- מיזוג קבצי TAR מרובים ב-C#
- שלב ZIP עם TAR ב-C#
- שלב TAR עם ZIP ב-C#
C# .NET API למיזוג קובצי ZIP ו-TAR
כדי למזג מספר רב של ארכיוני ZIP ו-TAR, נמנף את Aspose.ZIP עבור .NET. זהו .NET API עשיר בתכונות המאפשר לך ליצור ולטפל בפורמטי ארכיון פופולריים שונים. אתה יכול להוריד את ה-DLL של ה-API או להתקין אותו ישירות באמצעות NuGet.
PM> Install-Package Aspose.Zip
מיזוג קובצי ZIP מרובים ב-C#
בואו נתחיל את המסע שלנו למיזוג ארכיונים עם פורמט ZIP. ניקח שני ארכיוני ZIP ונאסוף את הערכים שלהם לקובץ ZIP אחד. להלן השלבים למיזוג קובצי ZIP מרובים ב-C#.
- טען את קובץ ה-ZIP הראשון באמצעות המחלקה Archive.
- באופן דומה, טען את קובץ ה-ZIP השני באמצעות המחלקה Archive.
- כעת, עברו בלולאה בין הערכים של ZIP הראשון באמצעות אוסף Archive.Entries.
- העתק כל ArchiveEntry לאובייקט MemoryStream באמצעות שיטת ArchiveEntry.Open().CopyTo(MemoryStream).
- הוסף ערך ל-ZIP השני בשיטת Archive.CreateEntry(string, MemoryStream).
- שמור את ה-ZIP הממוזג כקובץ נפרד בשיטת Archive.Save(string).
דוגמת הקוד הבאה מראה כיצד למזג שני קובצי ZIP ב-C#.
// טען את ארכיון ה-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 מרובים ב-C#
כעת נבדוק כיצד למזג מספר ארכיוני TAR ב-C#. להלן השלבים להשגת זאת.
- טען את קובץ ה-TAR הראשון באמצעות המחלקה TarArchive.
- באופן דומה, טען את קובץ ה-TAR השני באמצעות המחלקה TarArchive.
- כעת, עברו בלולאה בין הערכים של TAR הראשון באמצעות אוסף TarArchive.Entries.
- העתק כל TarEntry לאובייקט MemoryStream באמצעות שיטת TarEntry.Open().CopyTo(MemoryStream).
- הוסף ערך ל-TAR השני באמצעות שיטת TarArchive.CreateEntry(string, MemoryStream).
- שמור את ה-TAR הממוזג בשיטת TarArchive.Save(string).
דוגמת הקוד הבאה מראה כיצד למזג מספר קובצי TAR ב-C#.
// טען את ארכיון 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 ב-C#
בחלק זה נראה כיצד למזג קובץ ZIP לארכיון TAR ב-C#. להלן השלבים לביצוע פעולה זו.
- טען את קובץ ה-ZIP באמצעות המחלקה Archive.
- טען קובץ TAR באמצעות המחלקה TarArchive.
- כעת, עברו בלולאה בין הערכים של ZIP באמצעות אוסף Archive.Entries.
- העתק כל ArchiveEntry לאובייקט MemoryStream באמצעות שיטת ArchiveEntry.Open().CopyTo(MemoryStream).
- הוסף ערך ל-TAR באמצעות שיטת TarArchive.CreateEntry(string, MemoryStream).
- שמור את קובץ 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 ב-C#
בדומה לדוגמה הקודמת, אתה יכול למזג קובץ 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 עבור .NET ללא מגבלות הערכה על ידי קבלת רישיון זמני ללא תשלום.
סיכום
במאמר זה, למדת כיצד למזג מספר ארכיוני ZIP או TAR באופן תכנותי ב-C#. במיוחד, כיסינו כיצד למזג קבצי ZIP, קבצי TAR, ZIP ל-TAR ו-TAR ל-ZIP באופן דינמי. כדי לחקור עוד על Aspose.ZIP עבור .NET, אתה יכול לבקר בתיעוד. כמו כן, אתה יכול לפרסם את השאילתות שלך בפורום שלנו.