Class Archive

Class Archive

اسم الفضاء : Aspose.Zip تجميع: Aspose.Zip.dll (25.5.0)

هذه الفئة تمثل ملف أرشيف zip. استخدمها لتكوين أو استخراج أو تحديث ملفات zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

الأعضاء الموروثين

object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Constructors

Archive(ArchiveEntrySettings)

يبدأ عرضًا جديدًا من فئة Aspose.Zip.Archive مع إعدادات اختيارية لإدخاله.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.إذا لم يتم تحديدها ، فسيستخدم الضغط الأكثر شيوعًا دون التشفير.

Examples

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

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

Archive(أرشيف أرشيف أرشيف أرشيف أرشيف)

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

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

مصدر الأرشيف .

loadOptions ArchiveLoadOptions

خيارات تحميل الأرشيف الحالي مع.

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.إذا لم يتم تحديدها ، فسيستخدم الضغط الأكثر شيوعًا دون التشفير.

Examples

في المثال التالي ، يتم استخراج أرشيف مشفر ، ثم يتم تفكيك الإدخال الأول إلى .

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);
    }
}

Remarks

هذا البناء لا يقطع أي إدخال. انظر Aspose.Zip.ArchiveEntry.Open(System.String) طريقة للقطع.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

عنوان التشفير لـ AES يتعارض مع طريقة ضغط WinZip.

Archive(أرشيف, ArchiveLoadOptions, ArchiveEntrySettings)

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

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

المسار الكامل أو المسار النسبي إلى ملف الأرشيف.

loadOptions ArchiveLoadOptions

خيارات تحميل الأرشيف الحالي مع.

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.إذا لم يتم تحديدها ، فسيستخدم الضغط الأكثر شيوعًا دون التشفير.

Examples

في المثال التالي ، يتم استخراج أرشيف مشفر ، ثم يتم تفكيك الإدخال الأول إلى .

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);
    }
}

Remarks

هذا البناء لا يقطع أي إدخال. انظر Aspose.Zip.ArchiveEntry.Open(System.String) طريقة للقطع.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

لا يحصل المتصل على إذن الوصول المطلوب.

ArgumentException

الطريق " فارغ ، يحتوي على مساحات بيضاء فقط ، أو يحتوي على أحرف غير صحيحة.

UnauthorizedAccessException

يتم رفض الوصول إلى ملف path".

PathTooLongException

على سبيل المثال ، على المنصات المستندة إلى Windows ، يجب أن تكون المسارات أقل من 248 حرفًا ، ويجب أن يكون اسم الملف أقل من 260 حرفًا.

NotSupportedException

ملف في path’ يحتوي على عمود (:) في وسط السلسلة.

FileNotFoundException

لم يتم العثور على الملف.

DirectoryNotFoundException

المسار المحدد غير صالح ، على سبيل المثال ، على محرك أقراص غير مسجلة.

IOException

الملف مفتوح بالفعل.

InvalidDataException

وقد تم تدمير الملف.

Archive(ستيفن، ستيفن[ ]أرشيف الخيارات)

يبدأ مثالًا جديدًا من فئة Aspose.Zip.Archive من أرشيف zip متعدد الحجم ويجمع قائمة إدخال يمكن استخراجها من الأرشيف.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

الطريق إلى الجزء الأخير من الأرشيف متعدد الحجم مع الدليل المركزي.

عادة هذا القسم لديه *.zip التمديد وأصغر من غيرها.

segmentsInOrder string [ ]

خطوات إلى كل قطعة ولكن آخر من أرشيف زيب متعددة الحجم يحترم الطلب.

عادة ما تسمى filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

خيارات تحميل الأرشيف الحالي مع.

Examples

هذا العينة يخرج إلى دليل أرشيف من ثلاثة أجزاء.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

لا يمكن تحميل عناوين ZIP لأن الملفات المقدمة مزورة.

Properties

Entries

يحصل على إدخالات من Aspose.Zip.ArchiveEntry النوع الذي يشكل الأرشيف.

public ReadOnlyCollection<archiveentry> Entries { get; }

قيمة الممتلكات

ReadOnlyCollection &lt؛ ArchiveEntry >

NewEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة عناصر Aspose.Zip.ArchiveEntry حديثا.

public ArchiveEntrySettings NewEntrySettings { get; }

قيمة الممتلكات

ArchiveEntrySettings

Methods

CreateEntries(أرشيف الوسم : Bool)

أضف إلى الأرشيف جميع الملفات والمجلدات بشكل متكرر في الدليل المحدد.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parameters

directory DirectoryInfo

فيديوهات متعلقة بـ Compress

includeRootDirectory bool

إشارة إلى ما إذا كان لإدراج الدليل الجذر نفسه أم لا.

Returns

Archive

الأرشيف مع الإدخالات المكونة.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

المسار إلى directory’ غير صالح، على سبيل المثال، على محرك أقراص غير مسجلة.

SecurityException

لا يحصل المتصل على السماح المطلوب للوصول إلى directory".

CreateEntries(البول، البول)

أضف إلى الأرشيف جميع الملفات والمجلدات بشكل متكرر في الدليل المحدد.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parameters

sourceDirectory string

فيديوهات متعلقة بـ Compress

includeRootDirectory bool

إشارة إلى ما إذا كان لإدراج الدليل الجذر نفسه أم لا.

Returns

Archive

الأرشيف مع الإدخالات المكونة.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(قوس قزح، قوس قزح، ArchiveEntrySettings)

إنشاء إدخال واحد داخل الأرشيف.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

اسم الدخول .

path string

اسم الملف الجديد، أو اسم الملف النسبي الذي سيتم ضغطه.

openImmediately bool

صحيح، إذا قمت بفتح الملف على الفور، وإلا فتح الملف على حفظ الأرشيف.

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.

Returns

ArchiveEntry

إدخال ZIP.

Examples

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

Remarks

يتم تعيين اسم الإدخال فقط داخل المعلم.لا يؤثر اسم الملف المقدمة في المعلم على اسم الإدخال.

إذا تم فتح الملف على الفور مع المعيار فإنه يتم حظرها حتى يتم حفظ الأرشيف.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

لا يحصل المتصل على إذن الوصول المطلوب.

ArgumentException

الطريق " فارغ ، يحتوي على مساحات بيضاء فقط ، أو يحتوي على أحرف غير صحيحة.

UnauthorizedAccessException

يتم رفض الوصول إلى ملف path".

PathTooLongException

على سبيل المثال ، على المنصات المستندة إلى Windows ، يجب أن تكون المسارات أقل من 248 حرفًا ، ويجب أن يكون اسم الملف أقل من 260 حرفًا.

NotSupportedException

ملف في path’ يحتوي على عمود (:) في وسط السلسلة.

CreateEntry(أرشيف , أرشيف , أرشيف , أرشيف)

إنشاء إدخال واحد داخل الأرشيف.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

اسم الدخول .

source Stream

تدفق الدخول للمدخل.

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.

Returns

ArchiveEntry

إدخال ZIP.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(أرشيف الوسم : FileInfo, Bool, ArchiveEntrySettings)

إنشاء إدخال واحد داخل الأرشيف.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

اسم الدخول .

fileInfo FileInfo

سيتم ضغط البيانات الميتا من الملفات.

openImmediately bool

صحيح، إذا قمت بفتح الملف على الفور، وإلا فتح الملف على حفظ الأرشيف.

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.

Returns

ArchiveEntry

إدخال ZIP.

Examples

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

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

يتم تعيين اسم الإدخال فقط داخل المعلم.لا يؤثر اسم الملف المقدمة في المعلم على اسم الإدخال.

إذا تم فتح الملف على الفور مع المعيار فإنه يتم حظرها حتى يتم حفظ الأرشيف.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

المسار المحدد غير صالح ، على سبيل المثال ، على محرك أقراص غير مسجلة.

IOException

الملف مفتوح بالفعل.

CreateEntry(أرشيف الوسم : ArchiveEntrySettings, FileSystemInfo)

إنشاء إدخال واحد داخل الأرشيف.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

اسم الدخول .

source Stream

تدفق الدخول للمدخل.

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.

fileInfo FileSystemInfo

سيتم ضغط البيانات الميتا من الملف أو المجلد.

Returns

ArchiveEntry

إدخال ZIP.

Examples

قم بتجميع الأرشيف مع إدخال مشفر.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

يتم تعيين اسم الإدخال فقط داخل المعلم.لا يؤثر اسم الملف المقدمة في المعلم على اسم الإدخال.

يمكن الإشارة إلى System.IO.DirectoryInfo إذا كان الإدخال هو الدليل.

Exceptions

InvalidOperationException

كل من source’ و fileInfo’ صفر أو source’ صفر و fileInfo’ يمثل الدليل.

CreateEntry(كلمات مفتاحية Funcأرشيف أرشيف)

إنشاء إدخال واحد داخل الأرشيف.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

اسم الدخول .

streamProvider Func &lt؛ Stream >

الطريقة التي توفر تدفق الدخول للدخول.

newEntrySettings ArchiveEntrySettings

إعدادات الضغط والتشفير المستخدمة لإضافة Aspose.Zip.ArchiveEntry العنصر.

Returns

ArchiveEntry

إدخال ZIP.

Examples

قم بتجميع الأرشيف مع إدخال مشفر.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

هذه الطريقة متوفرة على .NET Framework 4.0 وما فوق و .NET Standard 2.0.

DeleteEntry(ArchiveEntry)

إزالة أول ظهور للمدخل المحدد من قائمة الدخول.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

إدخال إزالة من قائمة الإدخالات.

Returns

Archive

تم حذف الأرشيف مع الإدخال.

Examples

إليك كيفية إزالة جميع الإدخالات باستثناء الأخير:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

يتم إزالة الأرشيف.

DeleteEntry(إنت)

إزالة الإدخال من قائمة الإدخال بواسطة المؤشر.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

المؤشر القائم على الصفر من الدخول لإزالة.

Returns

Archive

تم حذف الأرشيف مع الإدخال.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

تم إزالة الأرشيف.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

يمارس المهام المحددة في التطبيق المرتبطة بتفريغ أو إطلاق أو إعادة تدوير الموارد غير المعالجة.

public void Dispose()

Dispose(بول)

يمارس المهام المحددة في التطبيق المرتبطة بتفريغ أو إطلاق أو إعادة تدوير الموارد غير المعالجة.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

هل ينبغي تخصيص الموارد التي يتم إدارةها؟

ExtractToDirectory(الستار)

استخراج جميع الملفات في الأرشيف إلى الدليل المقدمة.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

الطريق إلى الدليل لوضع الملفات المستخرجة في.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

إذا لم يكن الدليل موجودًا ، فسيتم إنشاؤه.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

على سبيل المثال، على منصات ويندوز، يجب أن تكون المسارات أقل من 248 حرف، وأسماء الملفات يجب أن تكون أقل من 260 حرف.

SecurityException

لا يتمتع المكالمة بالترخيص المطلوب للوصول إلى الدليل الحالي.

NotSupportedException

إذا لم يكن الدليل موجودًا ، فإن المسار يحتوي على حرف العمود الفقري (:) الذي ليس جزءًا من علامة محرك الأقراص (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

المجلد المحدد بالطريق هو ملف. -أو- اسم الشبكة غير معروف.

InvalidDataException

لقد تم توفير كلمة مرور خاطئة. - أو - تم تدمير الأرشيف.

Save(أرشيف أرشيف أرشيف أرشيف)

حفظ الأرشيف إلى التدفق المقدم.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

النطاق المستهدف

saveOptions ArchiveSaveOptions

خيارات لتوفير الأرشيف.

Examples

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

Remarks

يجب أن تكون مكتوبة.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

يتم إزالة الأرشيف.

Save(أرشيف الوسم : ArchiveSaveOptions)

حفظ الأرشيف إلى ملف الوجهة المقدمة.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

إذا كان اسم الملف المحدد يشير إلى ملف موجود ، فسيتم إعادة كتابته.

saveOptions ArchiveSaveOptions

خيارات لتوفير الأرشيف.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

من الممكن حفظ الأرشيف في نفس المسار الذي تم تحميله من. ومع ذلك، هذا لا ينصح لأن هذا النهج يستخدم نسخ إلى ملف مؤقت.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

لا يحصل المتصل على إذن الوصول المطلوب.

ArgumentException

الوجه destinationFileName’ فارغ ، يحتوي فقط على مساحات بيضاء ، أو يحتوي على أحرف غير صحيحة.

UnauthorizedAccessException

يتم رفض الوصول إلى ملف destinationFileName’.

PathTooLongException

المحدد destinationFileName، اسم الملف، أو كلاهما يتجاوز الحد الأقصى المحدد من النظام.على سبيل المثال، على منصات ويندوز، يجب أن تكون المسارات أقل من 248 حرفا، وأسماء الملفات يجب أن تكون أقل من 260 حرفا.

NotSupportedException

ملف في destinationFileName’ يحتوي على عمود (:) في منتصف السلسلة.

FileNotFoundException

لم يتم العثور على الملف.

DirectoryNotFoundException

المسار المحدد غير صالح ، على سبيل المثال ، على محرك أقراص غير مسجلة.

IOException

الملف مفتوح بالفعل.

SaveSplit(الخيارات، SplitArchiveSaveOptions)

تخزين الأرشيف متعدد الحجم إلى دليل الوجهة المقدمة.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

المسار إلى الدليل حيث سيتم إنشاء أجزاء الأرشيف.

options SplitArchiveSaveOptions

خيارات حفظ الأرشيف، بما في ذلك اسم الملف.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

Remarks

هذه الطريقة تتكون من عدة () ملفات filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

لا يمكن أن تجعل الأرشيف الحالي متعدد الحجم.

Exceptions

InvalidOperationException

تم فتح هذا الأرشيف من المصدر الحالي.

NotSupportedException

يتم ضغط هذه الأرشيفات باستخدام طريقة XZ وتشفيرها.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

لا يتمتع المكالمة بالترخيص المطلوب للوصول إلى الدليل.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

المسار المحدد يتجاوز الحد الأقصى المحدد من النظام.

ObjectDisposedException

يتم إزالة الأرشيف.

 عربي