Class GzipArchive

Class GzipArchive

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

Lớp này đại diện cho tệp lưu trữ gzip. Sử dụng nó để tạo hoặc giải nén các lưu trữ gzip.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

Kế thừa

objectGzipArchive

Triển khai

IArchive, IDisposable, IArchiveFileEntry

Các thành viên kế thừa

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

Nhận xét

Thuật toán nén Gzip dựa trên thuật toán DEFLATE, là sự kết hợp của LZ77 và mã hóa Huffman.

Các hàm khởi tạo

GzipArchive()

Khởi tạo một thể hiện mới của lớp Aspose.Zip.Gzip.GzipArchive được chuẩn bị để nén.

public GzipArchive()

Ví dụ

Ví dụ sau đây cho thấy cách nén một tệp.

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

GzipArchive(Stream, bool)

Khởi tạo một thể hiện mới của lớp Aspose.Zip.Gzip.GzipArchive được chuẩn bị để giải nén.

public GzipArchive(Stream sourceStream, bool parseHeader = false)

Tham số

sourceStream Stream

Nguồn của lưu trữ.

parseHeader bool

Có nên phân tích tiêu đề luồng để xác định các thuộc tính, bao gồm tên. Chỉ có ý nghĩa với luồng có thể tìm kiếm.

Ví dụ

Mở một lưu trữ từ một luồng và giải nén nó vào một MemoryStream

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

Nhận xét

Hàm khởi tạo này không giải nén. Xem phương thức Aspose.Zip.Gzip.GzipArchive.Open để giải nén.

GzipArchive(string, bool)

Khởi tạo một thể hiện mới của lớp Aspose.Zip.Gzip.GzipArchive.

public GzipArchive(string path, bool parseHeader = false)

Tham số

path string

Đường dẫn đến tệp lưu trữ.

parseHeader bool

Có nên phân tích tiêu đề luồng để xác định các thuộc tính, bao gồm tên. Chỉ có ý nghĩa với luồng có thể tìm kiếm.

Ví dụ

Mở một lưu trữ từ tệp theo đường dẫn và giải nén nó vào một MemoryStream

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

Nhận xét

Hàm khởi tạo này không giải nén. Xem phương thức Aspose.Zip.Gzip.GzipArchive.Open để giải nén.

Ngoại lệ

ArgumentNullException

path là null.

SecurityException

Người gọi không có quyền cần thiết để truy cập.

ArgumentException

path là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.

UnauthorizedAccessException

Quyền truy cập vào tệp path bị từ chối.

PathTooLongException

path, tên tệp, hoặc cả hai vượt quá độ dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, các đường dẫn phải nhỏ hơn 248 ký tự, và tên tệp phải nhỏ hơn 260 ký tự.

NotSupportedException

Tệp tại path chứa một dấu hai chấm (:) ở giữa chuỗi.

Thuộc tính

Name

Tên của tệp gốc.

public string Name { get; }

Giá trị thuộc tính

string

Phương thức

Dispose()

Thực hiện các tác vụ do ứng dụng xác định liên quan đến việc giải phóng, phát hành hoặc đặt lại các tài nguyên không quản lý.

public void Dispose()

Dispose(bool)

Thực hiện các tác vụ do ứng dụng xác định liên quan đến việc giải phóng, phát hành hoặc đặt lại các tài nguyên không quản lý.

protected virtual void Dispose(bool disposing)

Tham số

disposing bool

Có nên giải phóng các tài nguyên được quản lý hay không.

Extract(Stream)

Giải nén lưu trữ vào luồng được cung cấp.

public void Extract(Stream destination)

Tham số

destination Stream

Luồng đích. Phải có thể ghi.

Ví dụ

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

Ngoại lệ

ArgumentException

destination không hỗ trợ ghi.

InvalidDataException

Luồng bị hỏng và không chứa dữ liệu hợp lệ.

Extract(string)

Giải nén lưu trữ vào tệp theo đường dẫn.

public FileInfo Extract(string path)

Tham số

path string

Đường dẫn đến tệp đích. Nếu tệp đã tồn tại, nó sẽ bị ghi đè.

Trả về

FileInfo

Thông tin của tệp đã giải nén.

Ngoại lệ

ArgumentNullException

path là null.

SecurityException

Người gọi không có quyền cần thiết để truy cập.

ArgumentException

path là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.

UnauthorizedAccessException

Quyền truy cập vào tệp path bị từ chối.

PathTooLongException

path, tên tệp, hoặc cả hai vượt quá độ dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, các đường dẫn phải nhỏ hơn 248 ký tự, và tên tệp phải nhỏ hơn 260 ký tự.

NotSupportedException

Tệp tại path chứa một dấu hai chấm (:) ở giữa chuỗi.

InvalidDataException

Luồng bị hỏng và không chứa dữ liệu hợp lệ.

ExtractToDirectory(string)

Giải nén nội dung của lưu trữ vào thư mục được cung cấp.

public void ExtractToDirectory(string destinationDirectory)

Tham số

destinationDirectory string

Đường dẫn đến thư mục để đặt các tệp đã giải nén.

Nhận xét

Nếu thư mục không tồn tại, nó sẽ được tạo ra.

Ngoại lệ

ArgumentNullException

destinationDirectory là null.

PathTooLongException

path, tên tệp, hoặc cả hai vượt quá độ dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, các đường dẫn phải nhỏ hơn 248 ký tự và tên tệp phải nhỏ hơn 260 ký tự.

SecurityException

Người gọi không có quyền cần thiết để truy cập thư mục hiện có.

NotSupportedException

Nếu thư mục không tồn tại, đường dẫn chứa một ký tự dấu hai chấm (:) không phải là một phần của nhãn ổ đĩa (“C:").

ArgumentException

destinationDirectory là chuỗi có độ dài bằng không, chỉ chứa khoảng trắng, hoặc chứa một hoặc nhiều ký tự không hợp lệ. Bạn có thể truy vấn các ký tự không hợp lệ bằng cách sử dụng phương thức System.IO.Path.GetInvalidPathChars. -hoặc- đường dẫn được tiền tố bằng, hoặc chỉ chứa, một ký tự dấu hai chấm (:).

IOException

Thư mục được xác định bởi đường dẫn là một tệp. -hoặc- Tên mạng không được biết.

Open()

Mở lưu trữ để giải nén và cung cấp một luồng với nội dung lưu trữ.

public Stream Open()

Trả về

Stream

Luồng đại diện cho nội dung của lưu trữ.

Ví dụ

Giải nén lưu trữ và sao chép nội dung đã giải nén vào luồng tệp.

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

Bạn có thể sử dụng phương thức Stream.CopyTo cho .NET 4.0 và cao hơn: `unpacked.CopyTo(extracted);`

Nhận xét

Đọc từ luồng để lấy nội dung gốc của tệp. Xem phần ví dụ.

Save(Stream)

Lưu lưu trữ vào luồng được cung cấp.

public void Save(Stream outputStream)

Tham số

outputStream Stream

Luồng đích.

Ví dụ

Ghi dữ liệu nén vào luồng phản hồi http.

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

Nhận xét

outputStream phải có thể ghi.

Ngoại lệ

ArgumentException

outputStream không thể ghi.

InvalidOperationException

Nguồn chưa được cung cấp.

Save(string)

Lưu lưu trữ vào tệp đích được cung cấp.

public void Save(string destinationFileName)

Tham số

destinationFileName string

Đường dẫn của lưu trữ sẽ được tạo. Nếu tên tệp được chỉ định trỏ đến một tệp đã tồn tại, nó sẽ bị ghi đè.

Ví dụ

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

Ngoại lệ

ArgumentNullException

destinationFileName là null.

SecurityException

Người gọi không có quyền cần thiết để truy cập.

ArgumentException

destinationFileName là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.

UnauthorizedAccessException

Quyền truy cập vào tệp destinationFileName bị từ chối.

PathTooLongException

destinationFileName, tên tệp, hoặc cả hai vượt quá độ dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, các đường dẫn phải nhỏ hơn 248 ký tự, và tên tệp phải nhỏ hơn 260 ký tự.

NotSupportedException

Tệp tại destinationFileName chứa một dấu hai chấm (:) ở giữa chuỗi.

SetSource(Stream)

Đặt nội dung sẽ được nén trong lưu trữ.

public void SetSource(Stream source)

Tham số

source Stream

Luồng đầu vào cho lưu trữ.

Ví dụ

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

SetSource(FileInfo)

Đặt nội dung sẽ được nén trong lưu trữ.

public void SetSource(FileInfo fileInfo)

Tham số

fileInfo FileInfo

Tham chiếu đến một tệp sẽ được nén.

Ví dụ

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

SetSource(string)

Đặt nội dung sẽ được nén trong lưu trữ.

public void SetSource(string path)

Tham số

path string

Đường dẫn đến tệp sẽ được nén.

Ví dụ

Mở một lưu trữ từ tệp theo đường dẫn và giải nén nó vào một MemoryStream

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

Ngoại lệ

ArgumentNullException

path là null.

SecurityException

Người gọi không có quyền cần thiết để truy cập.

ArgumentException

path là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.

UnauthorizedAccessException

Quyền truy cập vào tệp path bị từ chối.

PathTooLongException

path, tên tệp, hoặc cả hai vượt quá độ dài tối đa do hệ thống xác định. Ví dụ, trên các nền tảng Windows, các đường dẫn phải nhỏ hơn 248 ký tự, và tên tệp phải nhỏ hơn 260 ký tự.

NotSupportedException

Tệp tại path chứa một dấu hai chấm (:) ở giữa chuỗi.

SetSource(TarArchive)

Đặt nội dung sẽ được nén trong lưu trữ.

public void SetSource(TarArchive tarArchive)

Tham số

tarArchive TarArchive

Lưu trữ tar sẽ được nén.

Ví dụ

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

Nhận xét

Sử dụng phương thức này để tạo lưu trữ tar.gz kết hợp.

 Tiếng Việt