Archive.Archive

Archive(ArchiveEntrySettings)

يقوم بتهيئة مثيل جديد لملفArchive فئة مع إعدادات اختيارية لإدخالاتها.

public Archive(ArchiveEntrySettings newEntrySettings = null)
معامليكتبوصف
newEntrySettingsArchiveEntrySettingsإعدادات الضغط والتشفير المستخدمة حديثًاArchiveEntry items. إذا لم يتم تحديدها ، فسيتم استخدام ضغط Deflate الأكثر شيوعًا بدون تشفير.

أمثلة

يوضح المثال التالي كيفية ضغط ملف واحد بالإعدادات الافتراضية.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

أنظر أيضا


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

يقوم بتهيئة مثيل جديد لملفArchive يمكن استخراج فئة ويؤلف قائمة إدخالات من الأرشيف.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
معامليكتبوصف
sourceStreamStreamمصدر الأرشيف.
loadOptionsArchiveLoadOptionsخيارات لتحميل الأرشيف الحالي مع.
newEntrySettingsArchiveEntrySettingsإعدادات الضغط والتشفير المستخدمة حديثًاArchiveEntry items. إذا لم يتم تحديدها ، فسيتم استخدام ضغط Deflate الأكثر شيوعًا بدون تشفير.

استثناءات

استثناءحالة
ArgumentExceptionsourceStream لا يمكن البحث عنه.
InvalidDataExceptionيتعارض رأس التشفير لـ AES مع طريقة ضغط WinZip.

ملاحظات

لا يقوم المُنشئ هذا بفك ضغط أي إدخال. يرىOpen طريقة فك الضغط.

أمثلة

يستخرج المثال التالي أرشيفًا مشفرًا ، ثم قم بفك ضغط الإدخال الأول إلى ملفMemoryStream.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

أنظر أيضا


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

يقوم بتهيئة مثيل جديد لملفArchive يمكن استخراج فئة ويؤلف قائمة إدخالات من الأرشيف.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
معامليكتبوصف
pathStringالمسار المؤهل بالكامل أو النسبي لملف الأرشيف.
loadOptionsArchiveLoadOptionsخيارات لتحميل الأرشيف الحالي مع.
newEntrySettingsArchiveEntrySettingsإعدادات الضغط والتشفير المستخدمة حديثًاArchiveEntry items. إذا لم يتم تحديدها ، فسيتم استخدام ضغط Deflate الأكثر شيوعًا بدون تشفير.

استثناءات

استثناءحالة
ArgumentNullExceptionpath باطل.
SecurityExceptionالمتصل ليس لديه الإذن المطلوب للوصول.
ArgumentExceptionالpath فارغ أو يحتوي على مسافات بيضاء فقط أو يحتوي على أحرف غير صالحة.
UnauthorizedAccessExceptionالوصول إلى الملفpath مرفوض.
PathTooLongExceptionالمحددpathأو اسم الملف أو كلاهما يتجاوز الحد الأقصى للطول المحدد من قبل النظام. على سبيل المثال ، في الأنظمة الأساسية المستندة إلى Windows ، يجب أن تكون المسارات أقل من 248 حرفًا ، ويجب أن تكون أسماء الملفات أقل من 260 حرفًا.
NotSupportedExceptionملف فيpath يحتوي على نقطتين (:) في منتصف السلسلة.

ملاحظات

لا يقوم المُنشئ هذا بفك ضغط أي إدخال. يرىOpen طريقة فك الضغط.

أمثلة

يستخرج المثال التالي أرشيفًا مشفرًا ، ثم قم بفك ضغط الإدخال الأول إلى ملفMemoryStream.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

أنظر أيضا