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
نال است.
فراخوانیکننده مجوز لازم برای دسترسی را ندارد.
path
خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.
دسترسی به فایل path
رد شده است.
path
، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز میکند. به عنوان مثال، در پلتفرمهای مبتنی بر ویندوز، مسیرها باید کمتر از 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
نال است.
فراخوانیکننده مجوز لازم برای دسترسی را ندارد.
path
خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.
دسترسی به فایل path
رد شده است.
path
، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز میکند. به عنوان مثال، در پلتفرمهای مبتنی بر ویندوز، مسیرها باید کمتر از 248 کاراکتر باشند و نام فایلها باید کمتر از 260 کاراکتر باشند.
فایل در path
شامل دو نقطه (:) در وسط رشته است.
جریان خراب است و شامل دادههای معتبر نمیباشد.
ExtractToDirectory(string)
محتویات آرشیو را به دایرکتوری ارائه شده استخراج میکند.
public void ExtractToDirectory(string destinationDirectory)
پارامترها
destinationDirectory
string
مسیر به دایرکتوری که فایلهای استخراج شده در آن قرار میگیرند.
توضیحات
اگر دایرکتوری وجود نداشته باشد، ایجاد خواهد شد.
استثناها
destinationDirectory
نال است.
path
، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز میکند. به عنوان مثال، در پلتفرمهای مبتنی بر ویندوز، مسیرها باید کمتر از 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
نال است.
فراخوانیکننده مجوز لازم برای دسترسی را ندارد.
destinationFileName
خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.
دسترسی به فایل destinationFileName
رد شده است.
destinationFileName
، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز میکند. به عنوان مثال، در پلتفرمهای مبتنی بر ویندوز، مسیرها باید کمتر از 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
نال است.
فراخوانیکننده مجوز لازم برای دسترسی را ندارد.
path
خالی است، فقط شامل فضای خالی است یا شامل کاراکترهای نامعتبر است.
دسترسی به فایل path
رد شده است.
path
، نام فایل، یا هر دو از طول حداکثر تعریف شده توسط سیستم تجاوز میکند. به عنوان مثال، در پلتفرمهای مبتنی بر ویندوز، مسیرها باید کمتر از 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 مشترک استفاده کنید.