Class GzipArchive

Class GzipArchive

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

คลาสนี้แทนไฟล์ gzip archive ใช้เพื่อสร้างหรือแยก gzip archives

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 และการเข้ารหัส Huffman

ตัวสร้าง

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

แหล่งที่มาของ archive

parseHeader bool

ว่าจะทำการวิเคราะห์ header ของ stream เพื่อหาคุณสมบัติรวมถึงชื่อหรือไม่ เหมาะสำหรับ stream ที่สามารถค้นหาได้เท่านั้น

ตัวอย่าง

เปิด archive จาก stream และแยกออกไปยัง 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

เส้นทางไปยังไฟล์ archive

parseHeader bool

ว่าจะทำการวิเคราะห์ header ของ stream เพื่อหาคุณสมบัติรวมถึงชื่อหรือไม่ เหมาะสำหรับ stream ที่สามารถค้นหาได้เท่านั้น

ตัวอย่าง

เปิด archive จากไฟล์ตามเส้นทางและแยกออกไปยัง 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

path ที่ระบุ ชื่อไฟล์ หรือทั้งสองอย่างเกินความยาวสูงสุดที่กำหนดโดยระบบ ตัวอย่างเช่น บนแพลตฟอร์มที่ใช้ 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)

แยก archive ไปยัง stream ที่ให้มา

public void Extract(Stream destination)

พารามิเตอร์

destination Stream

stream จุดหมายปลายทาง ต้องเขียนได้

ตัวอย่าง

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

ข้อยกเว้น

ArgumentException

destination ไม่รองรับการเขียน

InvalidDataException

stream เสียหายและไม่มีข้อมูลที่ถูกต้อง

Extract(string)

แยก archive ไปยังไฟล์ตามเส้นทาง

public FileInfo Extract(string path)

พารามิเตอร์

path string

เส้นทางไปยังไฟล์จุดหมายปลายทาง หากไฟล์มีอยู่แล้ว จะถูกเขียนทับ

คืนค่า

FileInfo

ข้อมูลของไฟล์ที่ถูกแยกออก

ข้อยกเว้น

ArgumentNullException

path เป็น null

SecurityException

ผู้เรียกไม่มีสิทธิ์เข้าถึงที่จำเป็น

ArgumentException

path ว่างเปล่า มีเฉพาะช่องว่าง หรือมีอักขระที่ไม่ถูกต้อง

UnauthorizedAccessException

การเข้าถึงไฟล์ path ถูกปฏิเสธ

PathTooLongException

path ที่ระบุ ชื่อไฟล์ หรือทั้งสองอย่างเกินความยาวสูงสุดที่กำหนดโดยระบบ ตัวอย่างเช่น บนแพลตฟอร์มที่ใช้ Windows เส้นทางต้องมีความยาวน้อยกว่า 248 ตัวอักษร และชื่อไฟล์ต้องมีความยาวน้อยกว่า 260 ตัวอักษร

NotSupportedException

ไฟล์ที่ path มีเครื่องหมายทวิจารณ์ (:) อยู่กลางสตริง

InvalidDataException

stream เสียหายและไม่มีข้อมูลที่ถูกต้อง

ExtractToDirectory(string)

แยกเนื้อหาของ archive ไปยังไดเรกทอรีที่ให้มา

public void ExtractToDirectory(string destinationDirectory)

พารามิเตอร์

destinationDirectory string

เส้นทางไปยังไดเรกทอรีที่จะวางไฟล์ที่ถูกแยกออก

หมายเหตุ

หากไดเรกทอรีไม่มีอยู่ จะถูกสร้างขึ้น

ข้อยกเว้น

ArgumentNullException

destinationDirectory เป็น null

PathTooLongException

path ที่ระบุ ชื่อไฟล์ หรือทั้งสองอย่างเกินความยาวสูงสุดที่กำหนดโดยระบบ ตัวอย่างเช่น บนแพลตฟอร์มที่ใช้ Windows เส้นทางต้องมีความยาวน้อยกว่า 248 ตัวอักษร และชื่อไฟล์ต้องมีความยาวน้อยกว่า 260 ตัวอักษร

SecurityException

ผู้เรียกไม่มีสิทธิ์เข้าถึงไดเรกทอรีที่มีอยู่

NotSupportedException

หากไดเรกทอรีไม่มีอยู่ เส้นทางมีอักขระเครื่องหมายทวิจารณ์ (:) ที่ไม่เป็นส่วนหนึ่งของป้ายชื่อดิสก์ (“C:")

ArgumentException

destinationDirectory เป็นสตริงที่มีความยาวเป็นศูนย์ มีเฉพาะช่องว่าง หรือมีอักขระที่ไม่ถูกต้องหนึ่งตัวหรือมากกว่า คุณสามารถสอบถามหาอักขระที่ไม่ถูกต้องโดยใช้วิธีการ System.IO.Path.GetInvalidPathChars -หรือ- เส้นทางมีเครื่องหมายทวิจารณ์ (:) ที่ถูกกำหนดไว้หรือมีเฉพาะเครื่องหมายทวิจารณ์ (:) เท่านั้น

IOException

ไดเรกทอรีที่ระบุโดยเส้นทางเป็นไฟล์ -หรือ- ชื่อเครือข่ายไม่เป็นที่รู้จัก

Open()

เปิด archive สำหรับการถอดรหัสและจัดเตรียม stream ที่มีเนื้อหาของ archive

public Stream Open()

คืนค่า

Stream

stream ที่แสดงถึงเนื้อหาของ archive

ตัวอย่าง

แยก archive และคัดลอกเนื้อหาที่แยกออกไปยังไฟล์ 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);`

หมายเหตุ

อ่านจาก stream เพื่อให้ได้เนื้อหาต้นฉบับของไฟล์ ดูส่วนตัวอย่าง

Save(Stream)

บันทึก archive ไปยัง stream ที่ให้มา

public void Save(Stream outputStream)

พารามิเตอร์

outputStream Stream

stream จุดหมายปลายทาง

ตัวอย่าง

เขียนข้อมูลที่ถูกบีบอัดไปยัง stream ของการตอบสนอง http

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

หมายเหตุ

outputStream ต้องเขียนได้

ข้อยกเว้น

ArgumentException

outputStream ไม่สามารถเขียนได้

InvalidOperationException

แหล่งข้อมูลยังไม่ได้ถูกจัดเตรียม

Save(string)

บันทึก archive ไปยังไฟล์จุดหมายปลายทางที่ให้มา

public void Save(string destinationFileName)

พารามิเตอร์

destinationFileName string

เส้นทางของ archive ที่จะสร้าง หากชื่อไฟล์ที่ระบุชี้ไปยังไฟล์ที่มีอยู่แล้ว จะถูกเขียนทับ

ตัวอย่าง

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

ข้อยกเว้น

ArgumentNullException

destinationFileName เป็น null

SecurityException

ผู้เรียกไม่มีสิทธิ์เข้าถึงที่จำเป็น

ArgumentException

destinationFileName ว่างเปล่า มีเฉพาะช่องว่าง หรือมีอักขระที่ไม่ถูกต้อง

UnauthorizedAccessException

การเข้าถึงไฟล์ destinationFileName ถูกปฏิเสธ

PathTooLongException

destinationFileName ที่ระบุ ชื่อไฟล์ หรือทั้งสองอย่างเกินความยาวสูงสุดที่กำหนดโดยระบบ ตัวอย่างเช่น บนแพลตฟอร์มที่ใช้ Windows เส้นทางต้องมีความยาวน้อยกว่า 248 ตัวอักษร และชื่อไฟล์ต้องมีความยาวน้อยกว่า 260 ตัวอักษร

NotSupportedException

ไฟล์ที่ destinationFileName มีเครื่องหมายทวิจารณ์ (:) อยู่กลางสตริง

SetSource(Stream)

ตั้งค่าเนื้อหาที่จะถูกบีบอัดภายใน archive

public void SetSource(Stream source)

พารามิเตอร์

source Stream

stream ข้อมูลนำเข้าสำหรับ archive

ตัวอย่าง

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

SetSource(FileInfo)

ตั้งค่าเนื้อหาที่จะถูกบีบอัดภายใน archive

public void SetSource(FileInfo fileInfo)

พารามิเตอร์

fileInfo FileInfo

การอ้างอิงไปยังไฟล์ที่จะถูกบีบอัด

ตัวอย่าง

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

SetSource(string)

ตั้งค่าเนื้อหาที่จะถูกบีบอัดภายใน archive

public void SetSource(string path)

พารามิเตอร์

path string

เส้นทางไปยังไฟล์ที่จะถูกบีบอัด

ตัวอย่าง

เปิด archive จากไฟล์ตามเส้นทางและแยกออกไปยัง MemoryStream

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

ข้อยกเว้น

ArgumentNullException

path เป็น null

SecurityException

ผู้เรียกไม่มีสิทธิ์เข้าถึงที่จำเป็น

ArgumentException

path ว่างเปล่า มีเฉพาะช่องว่าง หรือมีอักขระที่ไม่ถูกต้อง

UnauthorizedAccessException

การเข้าถึงไฟล์ path ถูกปฏิเสธ

PathTooLongException

path ที่ระบุ ชื่อไฟล์ หรือทั้งสองอย่างเกินความยาวสูงสุดที่กำหนดโดยระบบ ตัวอย่างเช่น บนแพลตฟอร์มที่ใช้ Windows เส้นทางต้องมีความยาวน้อยกว่า 248 ตัวอักษร และชื่อไฟล์ต้องมีความยาวน้อยกว่า 260 ตัวอักษร

NotSupportedException

ไฟล์ที่ path มีเครื่องหมายทวิจารณ์ (:) อยู่กลางสตริง

SetSource(TarArchive)

ตั้งค่าเนื้อหาที่จะถูกบีบอัดภายใน archive

public void SetSource(TarArchive tarArchive)

พารามิเตอร์

tarArchive TarArchive

Tar archive ที่จะถูกบีบอัด

ตัวอย่าง

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

หมายเหตุ

ใช้วิธีนี้เพื่อสร้าง archive แบบ tar.gz ร่วมกัน

 แบบไทย