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

C# .NET API לחילוץ ארכיוני ZIP מקוננים

כדי לפתוח את ארכיוני ה-ZIP המקוננים, נשתמש ב-Aspose.ZIP עבור .NET. ה-API נועד לבצע פעולות ארכיון מתוך יישומי NET. זה מאפשר לך ליצור ולטפל בפורמטי ארכיון פופולריים בצורה חלקה. אתה יכול להוריד את ה-DLL של ה-API או להתקין אותו באמצעות NuGet.

PM> Install-Package Aspose.Zip

חלץ ארכיוני ZIP מקוננים ב-C#

כדי להדגים את החילוץ של ארכיוני ZIP מקוננים, יצרנו את קובץ ה-ZIP הבא המכיל 3 ערכים.

ארכיון ZIP מקונן

ארכיון ZIP מקונן

נחלץ כל ארכיון ZIP מקונן ונשמור את התוכן שלו בתיקייה נפרדת. להלן השלבים לחילוץ ארכיוני ZIP מקוננים ב-C#.

  • ראשית, צור אובייקט FileStream כדי לטעון קובץ ZIP.
  • לאחר מכן, טען קובץ ZIP באמצעות המחלקה Archive.
  • חזור על כל ArchiveEntry באוסף Archive.Entries.
  • סנן את ארכיוני ה-ZIP באוסף ועבור כל ארכיון בצע את השלבים הבאים:

דוגמת הקוד הבאה מראה כיצד לפתוח ארכיוני ZIP מקוננים ב-C# .NET.

// פתח קובץ ZIP בזרם קבצים
using (FileStream zipFile = File.Open("Archives/nested-archive.zip", FileMode.Open))
{
    // טען קובץ ZIP באמצעות מחלקת ארכיון
    using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
    {
        // גש לכל ערך בארכיון ZIP
        foreach(ArchiveEntry entry in archive.Entries)
        {
            if(entry.Name.ToLower().Contains(".zip"))
            {
                // צור זרם זיכרון עבור ארכיון מקונן
                MemoryStream nestedArchiveStream = new MemoryStream();

                // העתק את הארכיון לזרם הזיכרון
                entry.Open().CopyTo(nestedArchiveStream);

                // טען את הארכיון המקנן מזרם הזיכרון
                using (var nestedArchive = new Archive(nestedArchiveStream))
                {
                    // חלץ ארכיון לדיסק.
                    nestedArchive.ExtractToDirectory("Archives/Extracted/"+entry.Name);
                }                               

            }

        } 
    }
}

להלן צילום המסך של ארכיוני ה-ZIP שחולצו.

חילוץ ארכיוני ZIP מקוננים ב-C# .NET

ארכיון מקונן פתוח

קבל רישיון API בחינם

אתה יכול לקבל רישיון זמני בחינם לשימוש ב-Aspose.ZIP עבור .NET ללא מגבלות הערכה.

סיכום

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

ראה גם