Class GzipArchive
Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)
تمثل هذه الفئة ملف أرشيف gzip. استخدمها لتكوين أو استخراج أرشيفات gzip.
public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry
الوراثة
التنفيذ
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 لفك الضغط.
الاستثناءات
path
هو null.
الطالب ليس لديه الإذن المطلوب للوصول.
path
فارغ، يحتوي فقط على مسافات بيضاء، أو يحتوي على أحرف غير صالحة.
تم رفض الوصول إلى الملف path
.
المسار أو اسم الملف المحدد أو كليهما يتجاوز الطول الأقصى المحدد بواسطة النظام. على سبيل المثال، على منصات Windows، يجب أن تكون المسارات أقل من 248 حرفًا، ويجب أن تكون أسماء الملفات أقل من 260 حرفًا.
الملف في path
يحتوي على نقطتين (:) في منتصف السلسلة.
الخصائص
Name
اسم الملف الأصلي.
public string Name { get; }
قيمة الخاصية
الطرق
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);
}
الاستثناءات
destination
لا يدعم الكتابة.
الدفق تالف ولا يحتوي على بيانات صالحة.
Extract(string)
يستخرج الأرشيف إلى الملف حسب المسار.
public FileInfo Extract(string path)
المعلمات
path
string
المسار إلى ملف الوجهة. إذا كان الملف موجودًا بالفعل، فسيتم الكتابة فوقه.
الإرجاع
معلومات عن الملف المستخرج.
الاستثناءات
path
هو null.
الطالب ليس لديه الإذن المطلوب للوصول.
path
فارغ، يحتوي فقط على مسافات بيضاء، أو يحتوي على أحرف غير صالحة.
تم رفض الوصول إلى الملف path
.
المسار المحدد، اسم الملف، أو كليهما يتجاوز الطول الأقصى المحدد بواسطة النظام. على سبيل المثال، على منصات Windows، يجب أن تكون المسارات أقل من 248 حرفًا، ويجب أن تكون أسماء الملفات أقل من 260 حرفًا.
الملف في path
يحتوي على نقطتين (:) في منتصف السلسلة.
الدفق تالف ولا يحتوي على بيانات صالحة.
ExtractToDirectory(string)
يستخرج محتوى الأرشيف إلى الدليل المقدم.
public void ExtractToDirectory(string destinationDirectory)
المعلمات
destinationDirectory
string
المسار إلى الدليل لوضع الملفات المستخرجة فيه.
ملاحظات
إذا كان الدليل غير موجود، فسيتم إنشاؤه.
الاستثناءات
destinationDirectory
هو null.
المسار المحدد، اسم الملف، أو كليهما يتجاوز الطول الأقصى المحدد بواسطة النظام. على سبيل المثال، على منصات Windows، يجب أن تكون المسارات أقل من 248 حرفًا، ويجب أن تكون أسماء الملفات أقل من 260 حرفًا.
الطالب ليس لديه الإذن المطلوب للوصول إلى الدليل الموجود.
إذا كان الدليل غير موجود، فإن المسار يحتوي على حرف نقطتين (:) ليس جزءًا من تسمية محرك (“C:").
destinationDirectory
هو سلسلة بطول صفر، يحتوي فقط على مسافات بيضاء، أو يحتوي على حرف أو أكثر غير صالح. يمكنك الاستعلام عن الأحرف غير الصالحة باستخدام الطريقة System.IO.Path.GetInvalidPathChars.
-أو- المسار مسبوق بـ، أو يحتوي فقط على حرف نقطتين (:).
الدليل المحدد بواسطة المسار هو ملف. -أو- اسم الشبكة غير معروف.
Open()
يفتح الأرشيف للاستخراج ويقدم دفقًا بمحتوى الأرشيف.
public Stream Open()
الإرجاع
الدفق الذي يمثل محتويات الأرشيف.
أمثلة
يستخرج الأرشيف وينسخ المحتوى المستخرج إلى دفق الملف.
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
يجب أن يكون قابلاً للكتابة.
الاستثناءات
outputStream
ليس قابلاً للكتابة.
لم يتم توفير المصدر.
Save(string)
يحفظ الأرشيف إلى ملف الوجهة المقدم.
public void Save(string destinationFileName)
المعلمات
destinationFileName
string
المسار إلى الأرشيف الذي سيتم إنشاؤه. إذا كان اسم الملف المحدد يشير إلى ملف موجود، فسيتم الكتابة فوقه.
أمثلة
using (var archive = new GzipArchive())
{
archive.SetSource("data.bin");
archive.Save("archive.gz");
}
الاستثناءات
destinationFileName
هو null.
الطالب ليس لديه الإذن المطلوب للوصول.
destinationFileName
فارغ، يحتوي فقط على مسافات بيضاء، أو يحتوي على أحرف غير صالحة.
تم رفض الوصول إلى الملف destinationFileName
.
المسار المحدد، اسم الملف، أو كليهما يتجاوز الطول الأقصى المحدد بواسطة النظام. على سبيل المثال، على منصات Windows، يجب أن تكون المسارات أقل من 248 حرفًا، ويجب أن تكون أسماء الملفات أقل من 260 حرفًا.
الملف في 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");
}
الاستثناءات
path
هو null.
الطالب ليس لديه الإذن المطلوب للوصول.
path
فارغ، يحتوي فقط على مسافات بيضاء، أو يحتوي على أحرف غير صالحة.
تم رفض الوصول إلى الملف path
.
المسار المحدد، اسم الملف، أو كليهما يتجاوز الطول الأقصى المحدد بواسطة النظام. على سبيل المثال، على منصات Windows، يجب أن تكون المسارات أقل من 248 حرفًا، ويجب أن تكون أسماء الملفات أقل من 260 حرفًا.
الملف في 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.