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
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ệ
path
là null.
Người gọi không có quyền cần thiết để truy cập.
path
là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.
Quyền truy cập vào tệp path
bị từ chối.
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ự.
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
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ệ
destination
không hỗ trợ ghi.
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ề
Thông tin của tệp đã giải nén.
Ngoại lệ
path
là null.
Người gọi không có quyền cần thiết để truy cập.
path
là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.
Quyền truy cập vào tệp path
bị từ chối.
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ự.
Tệp tại path
chứa một dấu hai chấm (:) ở giữa chuỗi.
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ệ
destinationDirectory
là null.
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ự.
Người gọi không có quyền cần thiết để truy cập thư mục hiện có.
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:").
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 (:).
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ề
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ệ
outputStream
không thể ghi.
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ệ
destinationFileName
là null.
Người gọi không có quyền cần thiết để truy cập.
destinationFileName
là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.
Quyền truy cập vào tệp destinationFileName
bị từ chối.
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ự.
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ệ
path
là null.
Người gọi không có quyền cần thiết để truy cập.
path
là rỗng, chỉ chứa khoảng trắng, hoặc chứa các ký tự không hợp lệ.
Quyền truy cập vào tệp path
bị từ chối.
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ự.
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.