צור ארכיון 7Zip ב-C#

ב פוסט הקודם, דנתי בדרכים שונות ליצירת ארכיוני ZIP באמצעות C#. המאמר סיקר גם כיצד ליצור ארכיוני ZIP מוצפנים ומוגנים באמצעות סיסמה. מלבד פורמט ZIP, ישנם עוד כמה פורמטים נפוצים של ארכיון כמו 7z, tar, RAR וכו’. בין אלה, פורמט ארכיון 7z מבוסס על ארכיטקטורת קוד פתוח והוא משמש לדחיסת קבצים ותיקיות עם יחס דחיסה גבוה. זה גם תומך בהצפנת AES של 256 סיביות ומאפשר הצפנת שמות הקבצים גם כן. במאמר זה, אדגים כיצד ליצור ארכיוני 7z (7-Zip) באופן תכנותי באמצעות C#.

מאמר זה מחולק לחלקים הבאים:

כל השלבים ודוגמאות הקוד במאמר זה מבוססים על Aspose.ZIP for .NET. לכן, ודא שהתקנת את ה-API באמצעות אחת מהשיטות הבאות:

צור ארכיון 7z (7-Zip) באמצעות C#

יכולים להיות שני תרחישים אפשריים של דחיסת קבצים לארכיון 7z. או שיש לך רק קובץ בודד או שיכול להיות חבורה של קבצים לדחיסה. אתה יכול להתמודד עם שני התרחישים במפורש.

צור ארכיון 7z עם כניסה בודדת

להלן השלבים ליצירת ארכיון 7z עם ערך יחיד.

דוגמת הקוד הבאה מראה כיצד ליצור ארכיון 7z (7-Zip) באמצעות C#.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

צור ארכיון 7z עם מספר ערכים

במקרה זה, אתה יכול לשים את הקבצים בתיקייה ולהעביר את הנתיב של התיקיה לשיטת SevenZipArchive.CreateEntries(). להלן השלבים להוספת ערכי קבצים מרובים לארכיון 7z.

דוגמת הקוד הבאה מראה כיצד ליצור ארכיון 7z עם מספר ערכים באמצעות C#.

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntries(dataDir);
    archive.Save("SevenZip.7z");
}

צור ארכיון 7z מוצפן AES באמצעות C#

פורמט 7z תומך בהצפנת AES לאבטחת הקבצים. על מנת להצפין קובץ 7z, נעשה שימוש במחלקה SevenZipAESEncryptionSettings. דוגמת הקוד הבאה מראה כיצד ליצור ארכיון 7z מוצפן AES באמצעות C#.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.7z");
}

הגדר סיסמאות שונות עבור ערכי 7z באמצעות C#

פורמט 7z מאפשר לך גם לציין סיסמה שונה עבור כל ערך קובץ. לדוגמה, אם אתה מתכוון לדחוס שני קבצים בארכיון 7z, אתה יכול לציין סיסמה שונה עבור כל קובץ. להלן השלבים להגדרת סיסמאות שונות עבור ערכי 7z.

דוגמת הקוד הבאה מראה כיצד להגדיר סיסמה לכל ערך בארכיון 7z.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

סיכום

במאמר זה, למדנו כיצד ליצור ארכיוני 7z באופן פרוגרמטי באמצעות C#. בנוסף, ראינו כיצד ליצור קבצי 7z מוצפנים AES ולהגדיר סיסמה לכל הזנת קובץ. תוכל ללמוד עוד על דחיסה/פירוק קבצים מ-כאן.

מאמרים קשורים