Class SevenZipArchive

Class SevenZipArchive

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

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

public class SevenZipArchive : IArchive, IDisposable

Kế thừa

objectSevenZipArchive

Triển khai

IArchive, IDisposable

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()

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

SevenZipArchive(SevenZipEntrySettings)

Khởi tạo một thể hiện mới của lớp Aspose.Zip.SevenZip.SevenZipArchive với các cài đặt tùy chọn cho các mục của nó.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Tham số

newEntrySettings SevenZipEntrySettings

Các cài đặt nén và mã hóa được sử dụng cho các mục Aspose.Zip.SevenZip.SevenZipArchiveEntry mới được thêm vào. Nếu không được chỉ định, sẽ sử dụng nén LZMA mà không có mã hóa.

Ví dụ

Ví dụ sau cho thấy cách nén một tệp đơn với các cài đặt mặc định: nén LZMA mà không có mã hóa.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Khởi tạo một thể hiện mới của lớp Aspose.Zip.SevenZip.SevenZipArchive và tạo danh sách các mục có thể được giải nén từ lưu trữ.

public SevenZipArchive(Stream sourceStream, string password = null)

Tham số

sourceStream Stream

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

password string

Mật khẩu tùy chọn cho việc giải mã. Nếu tên tệp được mã hóa, nó phải có mặt.

Ví dụ

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Nhận xét

Hàm khởi tạo này không giải nén bất kỳ mục nào. Xem phương thức Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) để giải nén.

Ngoại lệ

ArgumentException

sourceStream không thể tìm kiếm.

ArgumentNullException

sourceStream là null.

NotImplementedException

Lưu trữ chứa nhiều hơn một bộ mã. Hiện tại chỉ hỗ trợ nén LZMA.

SevenZipArchive(string, string)

Khởi tạo một thể hiện mới của lớp Aspose.Zip.SevenZip.SevenZipArchive và tạo danh sách các mục có thể được giải nén từ lưu trữ.

public SevenZipArchive(string path, string password = null)

Tham số

path string

Đường dẫn đầy đủ hoặc đường dẫn tương đối đến tệp lưu trữ.

password string

Mật khẩu tùy chọn cho việc giải mã. Nếu tên tệp được mã hóa, nó phải có mặt.

Ví dụ

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Nhận xét

Hàm khởi tạo này không giải nén bất kỳ mục nào. Xem phương thức Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) để giải nén.

Ngoại lệ

ArgumentNullException

path là null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

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, đườ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 dấu hai chấm (:) ở giữa chuỗi.

FileNotFoundException

Tệp không được tìm thấy.

DirectoryNotFoundException

Đường dẫn được chỉ định không hợp lệ, chẳng hạn như nằm trên một ổ đĩa không được ánh xạ.

IOException

Tệp đã được mở.

SevenZipArchive(string[], string)

Khởi tạo một thể hiện mới của lớp Aspose.Zip.SevenZip.SevenZipArchive từ lưu trữ 7z nhiều tập và tạo danh sách các mục có thể được giải nén từ lưu trữ.

public SevenZipArchive(string[] parts, string password = null)

Tham số

parts string[]

Đường dẫn đến từng phần của lưu trữ 7z nhiều tập theo thứ tự

password string

Mật khẩu tùy chọn cho việc giải mã. Nếu tên tệp được mã hóa, nó phải có mặt.

Ví dụ

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Ngoại lệ

ArgumentNullException

parts là null.

ArgumentException

parts không có mục nào.

SecurityException

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

ArgumentException

Đường dẫn đến tệp rỗng, chỉ chứa khoảng trắng hoặc chứa các ký tự không hợp lệ.

UnauthorizedAccessException

Truy cập vào một tệp bị từ chối.

PathTooLongException

Đường dẫn được chỉ định đến một phần, 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, đườ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 đường dẫn chứa dấu hai chấm (:) ở giữa chuỗi.

Thuộc tính

Entries

Lấy các mục của loại Aspose.Zip.SevenZip.SevenZipArchiveEntry cấu thành lưu trữ.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Giá trị thuộc tính

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Các cài đặt nén và mã hóa được sử dụng cho các mục Aspose.Zip.SevenZip.SevenZipArchiveEntry mới được thêm vào.

public SevenZipEntrySettings NewEntrySettings { get; }

Giá trị thuộc tính

SevenZipEntrySettings

Phương thức

CreateEntries(DirectoryInfo, bool)

Thêm vào lưu trữ tất cả các tệp và thư mục một cách đệ quy trong thư mục được cho.

public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Tham số

directory DirectoryInfo

Thư mục để nén.

includeRootDirectory bool

Cho biết có nên bao gồm thư mục gốc hay không.

Trả về

SevenZipArchive

Lưu trữ với các mục đã được tạo.

Ví dụ

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Ngoại lệ

DirectoryNotFoundException

Đường dẫn đến directory không hợp lệ, chẳng hạn như nằm trên một ổ đĩa không được ánh xạ.

SecurityException

Người gọi không có quyền truy cập cần thiết vào directory.

CreateEntries(string, bool)

Thêm vào lưu trữ tất cả các tệp và thư mục một cách đệ quy trong thư mục được cho.

public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Tham số

sourceDirectory string

Thư mục để nén.

includeRootDirectory bool

Cho biết có nên bao gồm thư mục gốc hay không.

Trả về

SevenZipArchive

Lưu trữ với các mục đã được tạo.

Ví dụ

Tạo lưu trữ 7z với nén LZMA2.

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Tạo một mục đơn trong lưu trữ.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Tham số

name string

Tên của mục.

fileInfo FileInfo

Siêu dữ liệu của tệp sẽ được nén.

openImmediately bool

True nếu mở tệp ngay lập tức, nếu không thì mở tệp khi lưu trữ được lưu.

newEntrySettings SevenZipEntrySettings

Các cài đặt nén và mã hóa được sử dụng cho mục Aspose.Zip.SevenZip.SevenZipArchiveEntry đã thêm.

Trả về

SevenZipArchiveEntry

Thể hiện mục Seven Zip.

Ví dụ

Tạo lưu trữ với các mục được mã hóa bằng các mật khẩu khác nhau.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Nhận xét

Tên mục chỉ được đặt trong tham số name. Tên tệp được cung cấp trong tham số fileInfo không ảnh hưởng đến tên mục.

Nếu tệp được mở ngay lập tức với tham số openImmediately, nó sẽ bị chặn cho đến khi lưu trữ được lưu.

Ngoại lệ

UnauthorizedAccessException

fileInfo là chỉ đọc hoặc là một thư mục.

DirectoryNotFoundException

Đường dẫn được chỉ định không hợp lệ, chẳng hạn như nằm trên một ổ đĩa không được ánh xạ.

IOException

Tệp đã được mở.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Tạo một mục đơn trong lưu trữ.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Tham số

name string

Tên của mục.

source Stream

Luồng đầu vào cho mục.

newEntrySettings SevenZipEntrySettings

Các cài đặt nén và mã hóa được sử dụng cho mục Aspose.Zip.SevenZip.SevenZipArchiveEntry đã thêm.

fileInfo FileSystemInfo

Siêu dữ liệu của tệp hoặc thư mục sẽ được nén.

Trả về

SevenZipArchiveEntry

Thể hiện mục SevenZip.

Ví dụ

Tạo lưu trữ với mục được nén bằng LZMA2 và mã hóa.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

Nhận xét

Tên mục chỉ được đặt trong tham số name. Tên tệp được cung cấp trong tham số fileInfo không ảnh hưởng đến tên mục.

fileInfo có thể tham chiếu đến System.IO.DirectoryInfo nếu mục là thư mục.

Ngoại lệ

InvalidOperationException

Cả sourcefileInfo đều là null hoặc source là null và fileInfo là thư mục.

CreateEntry(string, Stream, SevenZipEntrySettings)

Tạo một mục đơn trong lưu trữ.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

Tham số

name string

Tên của mục.

source Stream

Luồng đầu vào cho mục.

newEntrySettings SevenZipEntrySettings

Các cài đặt nén và mã hóa được sử dụng cho mục Aspose.Zip.SevenZip.SevenZipArchiveEntry đã thêm.

Trả về

SevenZipArchiveEntry

Thể hiện mục Zip.

Ví dụ

Tạo lưu trữ 7z với nén LZMA2 và mã hóa tất cả các mục.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

Tạo một mục đơn trong lưu trữ.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Tham số

name string

Tên của mục.

path string

Tên tệp đầy đủ mới, hoặc tên tệp tương đối sẽ được nén.

openImmediately bool

True nếu mở tệp ngay lập tức, nếu không thì mở tệp khi lưu trữ được lưu.

newEntrySettings SevenZipEntrySettings

Các cài đặt nén và mã hóa được sử dụng cho mục Aspose.Zip.SevenZip.SevenZipArchiveEntry đã thêm.

Trả về

SevenZipArchiveEntry

Thể hiện mục Zip.

Ví dụ

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Nhận xét

Tên mục chỉ được đặt trong tham số name. Tên tệp được cung cấp trong tham số path không ảnh hưởng đến tên mục.

Nếu tệp được mở ngay lập tức với tham số openImmediately, nó sẽ bị chặn cho đến khi lưu trữ được lưu.

Ngoại lệ

ArgumentNullException

path là null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

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, đườ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 dấu hai chấm (:) ở giữa chuỗi.

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

Cho biết liệu các tài nguyên được quản lý có nên được giải phóng hay không.

ExtractToDirectory(string, string)

Giải nén tất cả các tệp trong lưu trữ vào thư mục được cung cấp.

public void ExtractToDirectory(string destinationDirectory, string password = null)

Tham số

destinationDirectory string

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

password string

Mật khẩu tùy chọn cho việc giải mã nội dung.

Ví dụ

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Nhận xét

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

password chỉ được sử dụng cho việc giải mã nội dung. Nếu tên tệp được mã hóa, hãy cung cấp mật khẩu trong hàm khởi tạo Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) hoặc Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).

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, đườ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 truy cập cần thiết vào thư mục hiện có.

NotSupportedException

Nếu thư mục không tồn tại, đường dẫn chứa 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 chỉ định bởi đường dẫn là một tệp. -hoặc- Tên mạng không được biết.

InvalidDataException

Lưu trữ bị hỏng.

Save(Stream)

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

public void Save(Stream output)

Tham số

output Stream

Luồng đích.

Ví dụ

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

Nhận xét

output phải có khả năng tìm kiếm.

Ngoại lệ

ArgumentException

output không hỗ trợ tìm kiếm.

ArgumentNullException

output là null.

InvalidOperationException

Bộ mã hóa không thành công trong việc nén dữ liệu.

Save(string)

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 hiện có, nó sẽ bị ghi đè.

Ví dụ

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

Nhận xét

Có thể lưu một lưu trữ vào cùng một đường dẫn mà nó đã được tải từ. Tuy nhiên, điều này không được khuyến nghị vì phương pháp này sử dụng sao chép vào tệp tạm thời.

Ngoại lệ

ArgumentNullException

destinationFileName là null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

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, đườ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 dấu hai chấm (:) ở giữa chuỗi.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Lưu trữ nhiều tập vào thư mục đích được cung cấp.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Tham số

destinationDirectory string

Đường dẫn đến thư mục nơi các đoạn lưu trữ sẽ được tạo.

options SplitSevenZipArchiveSaveOptions

Các tùy chọn cho việc lưu trữ, bao gồm tên tệp.

Ví dụ

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitSevenZipArchiveSaveOptions("volume", 65536));
}

Nhận xét

Phương thức này tạo ra một số (n) tệp với tên filename.7z.001, filename.7z.002, ..., filename.7z.(n).

Không thể biến một lưu trữ hiện có thành nhiều tập.

Ngoại lệ

InvalidOperationException

Lưu trữ này đã được mở từ nguồn hiện có.

ArgumentNullException

destinationDirectory là null.

SecurityException

Người gọi không có quyền truy cập cần thiết vào thư mục.

ArgumentException

destinationDirectory chứa các ký tự không hợp lệ như “, >, <, hoặc |.

 Tiếng Việt