Class GzipArchive

Class GzipArchive

Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)

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

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

الوراثة

objectGzipArchive

التنفيذ

IArchive, IDisposable, IArchiveFileEntry

الأعضاء الموروثة

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

ملاحظات

خوارزمية ضغط Gzip تعتمد على خوارزمية DEFLATE، وهي مزيج من LZ77 وترميز هوفمان.

المُنشئات

GzipArchive()

يهيئ مثيلًا جديدًا من فئة Aspose.Zip.Gzip.GzipArchive المعدة للضغط.

public GzipArchive()

أمثلة

المثال التالي يوضح كيفية ضغط ملف.

using (GzipArchive archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

GzipArchive(Stream, bool)

يهيئ مثيلًا جديدًا من فئة Aspose.Zip.Gzip.GzipArchive المعدة لفك الضغط.

public GzipArchive(Stream sourceStream, bool parseHeader = false)

المعلمات

sourceStream Stream

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

parseHeader bool

ما إذا كان يجب تحليل رأس الدفق لمعرفة الخصائص، بما في ذلك الاسم. يكون منطقيًا فقط للدفق القابل للبحث.

أمثلة

افتح أرشيفًا من دفق واستخرجه إلى MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
  archive.Open().CopyTo(ms);

ملاحظات

لا يقوم هذا المُنشئ بفك الضغط. راجع طريقة Aspose.Zip.Gzip.GzipArchive.Open لفك الضغط.

GzipArchive(string, bool)

يهيئ مثيلًا جديدًا من فئة Aspose.Zip.Gzip.GzipArchive.

public GzipArchive(string path, bool parseHeader = false)

المعلمات

path string

المسار إلى ملف الأرشيف.

parseHeader bool

ما إذا كان يجب تحليل رأس الدفق لمعرفة الخصائص، بما في ذلك الاسم. يكون منطقيًا فقط للدفق القابل للبحث.

أمثلة

افتح أرشيفًا من ملف حسب المسار واستخرجه إلى MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
  archive.Open().CopyTo(ms);

ملاحظات

لا يقوم هذا المُنشئ بفك الضغط. راجع طريقة Aspose.Zip.Gzip.GzipArchive.Open لفك الضغط.

الاستثناءات

ArgumentNullException

path هو null.

SecurityException

الطالب ليس لديه الإذن المطلوب للوصول.

ArgumentException

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

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

الملف في path يحتوي على نقطتين (:) في منتصف السلسلة.

الخصائص

Name

اسم الملف الأصلي.

public string Name { get; }

قيمة الخاصية

string

الطرق

Dispose()

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

public void Dispose()

Dispose(bool)

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

protected virtual void Dispose(bool disposing)

المعلمات

disposing bool

ما إذا كانت الموارد المدارة يجب أن يتم التخلص منها.

Extract(Stream)

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

public void Extract(Stream destination)

المعلمات

destination Stream

دفق الوجهة. يجب أن يكون قابلًا للكتابة.

أمثلة

using (var archive = new GzipArchive("archive.gz"))
{
     archive.Extract(httpResponseStream);
}

الاستثناءات

ArgumentException

destination لا يدعم الكتابة.

InvalidDataException

الدفق تالف ولا يحتوي على بيانات صالحة.

Extract(string)

يستخرج الأرشيف إلى الملف حسب المسار.

public FileInfo Extract(string path)

المعلمات

path string

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

الإرجاع

FileInfo

معلومات عن الملف المستخرج.

الاستثناءات

ArgumentNullException

path هو null.

SecurityException

الطالب ليس لديه الإذن المطلوب للوصول.

ArgumentException

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

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

الملف في path يحتوي على نقطتين (:) في منتصف السلسلة.

InvalidDataException

الدفق تالف ولا يحتوي على بيانات صالحة.

ExtractToDirectory(string)

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

public void ExtractToDirectory(string destinationDirectory)

المعلمات

destinationDirectory string

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

ملاحظات

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

الاستثناءات

ArgumentNullException

destinationDirectory هو null.

PathTooLongException

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

SecurityException

الطالب ليس لديه الإذن المطلوب للوصول إلى الدليل الموجود.

NotSupportedException

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

ArgumentException

destinationDirectory هو سلسلة بطول صفر، يحتوي فقط على مسافات بيضاء، أو يحتوي على حرف أو أكثر غير صالح. يمكنك الاستعلام عن الأحرف غير الصالحة باستخدام الطريقة System.IO.Path.GetInvalidPathChars. -أو- المسار مسبوق بـ، أو يحتوي فقط على حرف نقطتين (:).

IOException

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

Open()

يفتح الأرشيف للاستخراج ويقدم دفقًا بمحتوى الأرشيف.

public Stream Open()

الإرجاع

Stream

الدفق الذي يمثل محتويات الأرشيف.

أمثلة

يستخرج الأرشيف وينسخ المحتوى المستخرج إلى دفق الملف.

using (var archive = new GzipArchive("archive.gz"))
{
    using (var extracted = File.Create("data.bin"))
    {
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }            
}

يمكنك استخدام طريقة Stream.CopyTo لـ .NET 4.0 وما فوق: `unpacked.CopyTo(extracted);`

ملاحظات

اقرأ من الدفق للحصول على المحتوى الأصلي للملف. راجع قسم الأمثلة.

Save(Stream)

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

public void Save(Stream outputStream)

المعلمات

outputStream Stream

دفق الوجهة.

أمثلة

يكتب البيانات المضغوطة إلى دفق استجابة http.

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

ملاحظات

outputStream يجب أن يكون قابلاً للكتابة.

الاستثناءات

ArgumentException

outputStream ليس قابلاً للكتابة.

InvalidOperationException

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

Save(string)

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

public void Save(string destinationFileName)

المعلمات

destinationFileName string

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

أمثلة

using (var archive = new GzipArchive())
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

الاستثناءات

ArgumentNullException

destinationFileName هو null.

SecurityException

الطالب ليس لديه الإذن المطلوب للوصول.

ArgumentException

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

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

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

SetSource(Stream)

يحدد المحتوى الذي سيتم ضغطه داخل الأرشيف.

public void SetSource(Stream source)

المعلمات

source Stream

الدفق المدخل للأرشيف.

أمثلة

using (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

SetSource(FileInfo)

يحدد المحتوى الذي سيتم ضغطه داخل الأرشيف.

public void SetSource(FileInfo fileInfo)

المعلمات

fileInfo FileInfo

المرجع إلى ملف سيتم ضغطه.

أمثلة

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.gz");
}

SetSource(string)

يحدد المحتوى الذي سيتم ضغطه داخل الأرشيف.

public void SetSource(string path)

المعلمات

path string

المسار إلى الملف الذي سيتم ضغطه.

أمثلة

افتح أرشيفًا من ملف حسب المسار واستخرجه إلى MemoryStream

using (var archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

الاستثناءات

ArgumentNullException

path هو null.

SecurityException

الطالب ليس لديه الإذن المطلوب للوصول.

ArgumentException

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

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

الملف في path يحتوي على نقطتين (:) في منتصف السلسلة.

SetSource(TarArchive)

يحدد المحتوى الذي سيتم ضغطه داخل الأرشيف.

public void SetSource(TarArchive tarArchive)

المعلمات

tarArchive TarArchive

أرشيف Tar ليتم ضغطه.

أمثلة

using (var tarArchive = new TarArchive())
{
    tarArchive.CreateEntry("first.bin", "data1.bin");
    tarArchive.CreateEntry("second.bin", "data2.bin");
    using (var gzippedArchive = new GzipArchive())
    {
           gzippedArchive.SetSource(tarArchive);
           gzippedArchive.Save("archive.tar.gz");
    }
}

ملاحظات

استخدم هذه الطريقة لتكوين أرشيف مشترك tar.gz.

 عربي