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 نال است.

SecurityException

فراخوانی‌کننده مجوز لازم برای دسترسی را ندارد.

ArgumentException

path خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.

UnauthorizedAccessException

دسترسی به فایل path رد شده است.

PathTooLongException

path، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز می‌کند. به عنوان مثال، در پلتفرم‌های مبتنی بر ویندوز، مسیرها باید کمتر از 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 نال است.

SecurityException

فراخوانی‌کننده مجوز لازم برای دسترسی را ندارد.

ArgumentException

path خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.

UnauthorizedAccessException

دسترسی به فایل path رد شده است.

PathTooLongException

path، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز می‌کند. به عنوان مثال، در پلتفرم‌های مبتنی بر ویندوز، مسیرها باید کمتر از 248 کاراکتر باشند و نام فایل‌ها باید کمتر از 260 کاراکتر باشند.

NotSupportedException

فایل در path شامل دو نقطه (:) در وسط رشته است.

InvalidDataException

جریان خراب است و شامل داده‌های معتبر نمی‌باشد.

ExtractToDirectory(string)

محتویات آرشیو را به دایرکتوری ارائه شده استخراج می‌کند.

public void ExtractToDirectory(string destinationDirectory)

پارامترها

destinationDirectory string

مسیر به دایرکتوری که فایل‌های استخراج شده در آن قرار می‌گیرند.

توضیحات

اگر دایرکتوری وجود نداشته باشد، ایجاد خواهد شد.

استثناها

ArgumentNullException

destinationDirectory نال است.

PathTooLongException

path، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز می‌کند. به عنوان مثال، در پلتفرم‌های مبتنی بر ویندوز، مسیرها باید کمتر از 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 نال است.

SecurityException

فراخوانی‌کننده مجوز لازم برای دسترسی را ندارد.

ArgumentException

destinationFileName خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.

UnauthorizedAccessException

دسترسی به فایل destinationFileName رد شده است.

PathTooLongException

destinationFileName، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز می‌کند. به عنوان مثال، در پلتفرم‌های مبتنی بر ویندوز، مسیرها باید کمتر از 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 نال است.

SecurityException

فراخوانی‌کننده مجوز لازم برای دسترسی را ندارد.

ArgumentException

path خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.

UnauthorizedAccessException

دسترسی به فایل path رد شده است.

PathTooLongException

path، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز می‌کند. به عنوان مثال، در پلتفرم‌های مبتنی بر ویندوز، مسیرها باید کمتر از 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 مشترک استفاده کنید.

 فارسی