מיזוג ארכיוני ZIP או TAR מרובים ב-C#

בזמן העבודה עם ארכיונים מתוך יישומי ה-.NET שלך, ייתכן שיהיה עליך למזג קבצי ZIP או TAR מרובים. לדוגמה, ייתכן שתרצה לחלץ קבצים ותיקיות ממספר ארכיונים ולהכניס אותם לארכיון אחד. כדי להשיג זאת, מאמר זה מכסה כיצד למזג קבצי ZIP או TAR מרובים ב-C#. נסקור את המיזוג של ZIP ל-ZIP, TAR ל-TAR, ZIP ל-TAR ו-TAR ל-ZIP.

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 ב-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 ב-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 לתוך 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, אתה יכול לבקר בתיעוד. כמו כן, אתה יכול לפרסם את השאילתות שלך בפורום שלנו.

ראה גם