Class Archive

Class Archive

Tên không gian: Aspose.Zip Tổng hợp: Aspose.Zip.dll (25.5.0)

Lớp này đại diện cho một tệp lưu trữ zip. Sử dụng nó để tạo ra, rút hoặc cập nhật các tập tin zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Thành viên thừa kế

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

Constructors

Archive(ArchiveEntrySettings)

Bắt đầu một trường hợp mới của lớp Aspose.Zip.Archive với cài đặt tùy chọn cho các bài đăng của nó.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Cài đặt nén và mã hóa được sử dụng cho các mục mới được thêm vào Aspose.Zip.ArchiveEntry.Nếu không được xác định, việc nén Deflate phổ biến nhất mà không có mã hóa sẽ được sử dụng.

Examples

Ví dụ sau đây cho thấy làm thế nào để nén một tệp duy nhất với cài đặt mặc định.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Bắt đầu một ví dụ mới của lớp Aspose.Zip.Archive và tạo ra một danh sách nhập có thể được rút ra từ lưu trữ.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

Nguồn gốc của Archive.

loadOptions ArchiveLoadOptions

Các tùy chọn để tải các tài liệu hiện có với.

newEntrySettings ArchiveEntrySettings

Cài đặt nén và mã hóa được sử dụng cho các mục mới được thêm vào Aspose.Zip.ArchiveEntry.Nếu không được xác định, việc nén Deflate phổ biến nhất mà không có mã hóa sẽ được sử dụng.

Examples

Ví dụ sau đây rút ra một tập tin mã hóa, sau đó phá vỡ đầu tiên vào một .

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Nhà xây dựng này không làm giảm bất kỳ input nào. Xem Aspose.Zip.ArchiveEntry.Open(System.String) phương pháp để làm giảm.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Tiêu đề mã hóa cho AES phản đối phương pháp nén WinZip.

Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Bắt đầu một ví dụ mới của lớp Aspose.Zip.Archive và tạo ra một danh sách nhập có thể được rút ra từ lưu trữ.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

Quá trình hoàn toàn đủ điều kiện hoặc con đường tương đối đến tệp lưu trữ.

loadOptions ArchiveLoadOptions

Các tùy chọn để tải các tài liệu hiện có với.

newEntrySettings ArchiveEntrySettings

Cài đặt nén và mã hóa được sử dụng cho các mục mới được thêm vào Aspose.Zip.ArchiveEntry.Nếu không được xác định, việc nén Deflate phổ biến nhất mà không có mã hóa sẽ được sử dụng.

Examples

Ví dụ sau đây rút ra một tập tin mã hóa, sau đó phá vỡ đầu tiên vào một .

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Nhà xây dựng này không làm giảm bất kỳ input nào. Xem Aspose.Zip.ArchiveEntry.Open(System.String) phương pháp để làm giảm.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Người gọi không có giấy phép cần thiết để truy cập.

ArgumentException

Đường path’ là trống, chỉ chứa các không gian trắng, hoặc chứa các ký tự vô hiệu.

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

Tệp ở path’ chứa một cột (:) ở giữa dòng.

FileNotFoundException

file không được tìm thấy.

DirectoryNotFoundException

Con đường được chỉ định là vô hiệu, chẳng hạn như ở trên một ổ đĩa không được vẽ.

IOException

Tệp đã mở rồi.

InvalidDataException

Tài liệu bị hư hỏng.

Archive(Thẻ, string[ ], ArchiveLoadOptions)

Bắt đầu một ví dụ mới của lớp Aspose.Zip.Archive từ nhiều khối zip lưu trữ và tạo ra một danh sách nhập có thể được rút ra từ lưu trữ.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

Đường đến phân khúc cuối cùng của lưu trữ đa khối với thư mục trung tâm.

Thông thường, phần này có phần mở rộng *.zip và nhỏ hơn so với các phần khác.

segmentsInOrder string [ ]

Các bước đến mỗi phân khúc nhưng cuối cùng của đa khối zip lưu trữ tuân thủ lệnh.

Thông thường họ đặt tên là filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Các tùy chọn để tải các tài liệu hiện có với.

Examples

Mẫu này lấy ra một thư mục một lưu trữ của ba phần.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

Không thể tải các tiêu đề ZIP vì các tập tin được cung cấp bị hư hỏng.

Properties

Entries

Gets entries of Aspose.Zip.ArchiveEntry type constituting the archive.

public ReadOnlyCollection<archiveentry> Entries { get; }

Giá trị bất động sản

ReadOnlyCollection < ArchiveEntry >

NewEntrySettings

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

public ArchiveEntrySettings NewEntrySettings { get; }

Giá trị bất động sản

ArchiveEntrySettings

Methods

CreateEntries(Bảng tin tức, bool)

Thêm vào lưu trữ tất cả các tệp và thư mục một cách lặp lại trong danh mục được cung cấp.

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

Parameters

directory DirectoryInfo

Hướng dẫn làm compress.

includeRootDirectory bool

Nó chỉ ra liệu phải bao gồm bản địa gốc hay không.

Returns

Archive

Archive with các entries composed.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

Con đường đến directory’ là vô hiệu, chẳng hạn như là trên một ổ đĩa không được bản đồ.

SecurityException

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

CreateEntries(Lời bài hát: Bool)

Thêm vào lưu trữ tất cả các tệp và thư mục một cách lặp lại trong danh mục được cung cấp.

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

Parameters

sourceDirectory string

Hướng dẫn làm compress.

includeRootDirectory bool

Nó chỉ ra liệu phải bao gồm bản địa gốc hay không.

Returns

Archive

Archive with các entries composed.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(string, string, bool, ArchiveEntrySettings)

Tạo một bản ghi duy nhất trong hồ sơ.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Tên của entry.

path string

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

openImmediately bool

Thật vậy, nếu bạn mở tệp ngay lập tức, nếu không mở tệp trên lưu trữ.

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Giai đoạn nhập zip.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarks

Tên đăng nhập chỉ được đặt trong parameter. tên tệp được cung cấp trong parameter không ảnh hưởng đến tên đăng nhập.

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

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Người gọi không có giấy phép cần thiết để truy cập.

ArgumentException

Đường path’ là trống, chỉ chứa các không gian trắng, hoặc chứa các ký tự vô hiệu.

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

Tệp ở path’ chứa một cột (:) ở giữa dòng.

CreateEntry(dòng, dòng, ArchiveEntrySettings)

Tạo một bản ghi duy nhất trong hồ sơ.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Tên của entry.

source Stream

dòng đầu vào cho đầu vào.

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Giai đoạn nhập zip.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

Tạo một bản ghi duy nhất trong hồ sơ.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Tên của entry.

fileInfo FileInfo

Các metadata của file để được nén.

openImmediately bool

Thật vậy, nếu bạn mở tệp ngay lập tức, nếu không mở tệp trên lưu trữ.

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Giai đoạn nhập zip.

Examples

Kết hợp lưu trữ với các bài đăng được mã hóa với các phương pháp mã hóa khác nhau và mật khẩu mỗi.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

Tên đăng nhập chỉ được đặt trong parameter. tên tệp được cung cấp trong parameter không ảnh hưởng đến tên đăng nhập.

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

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Con đường được chỉ định là vô hiệu, chẳng hạn như ở trên một ổ đĩa không được vẽ.

IOException

Tệp đã mở rồi.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Tạo một bản ghi duy nhất trong hồ sơ.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

Tên của entry.

source Stream

dòng đầu vào cho đầu vào.

newEntrySettings ArchiveEntrySettings

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

fileInfo FileSystemInfo

Các metadata của tệp hoặc thư mục để được nén.

Returns

ArchiveEntry

Giai đoạn nhập zip.

Examples

Tích hợp file với nhập mã hóa.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

Tên đăng nhập chỉ được đặt trong parameter. tên tệp được cung cấp trong parameter không ảnh hưởng đến tên đăng nhập.

có thể tham khảo System.IO.DirectoryInfo nếu nhập là thư mục.

Exceptions

InvalidOperationException

Cả source’ và fileInfo’ là null hoặc source’ là null và fileInfo’ là biểu tượng cho thư mục.

CreateEntry(Tính năng: Func, Trang chủ ArchiveEntrySettings)

Tạo một bản ghi duy nhất trong hồ sơ.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Tên của entry.

streamProvider Func < Stream >

Phương pháp cung cấp dòng nhập cho việc nhập.

newEntrySettings ArchiveEntrySettings

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

Returns

ArchiveEntry

Giai đoạn nhập zip.

Examples

Tích hợp file với nhập mã hóa.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

Phương pháp này là cho .NET Framework 4.0 và trên và cho .NET Standard 2.0 phiên bản.

DeleteEntry(ArchiveEntry)

Xóa sự xuất hiện đầu tiên của bản nhập cụ thể từ danh sách nhập.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Đăng nhập để loại bỏ khỏi danh sách đăng nhập.

Returns

Archive

Archive with entry đã bị xóa.

Examples

Dưới đây là cách bạn có thể xóa tất cả các bài đăng ngoại trừ bài đăng cuối cùng:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

Tài liệu đã bị xóa bỏ.

DeleteEntry(int)

Xóa nhập từ danh sách nhập theo chỉ số.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Chỉ số dựa trên zero của nhập để loại bỏ.

Returns

Archive

Archive with entry đã bị xóa.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Archive đã được giải quyết.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

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

public void Dispose()

Dispose(Bool)

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

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Liệu các tài nguyên được quản lý có nên được khai thác hay không.

ExtractToDirectory(String)

Loại bỏ tất cả các tập tin trong tập tin vào thư mục được cung cấp.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Con đường đến thư mục để đặt các tập tin được lấy vào.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

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

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Các con đường cụ thể, tên tệp hoặc cả hai đều vượt quá chiều dài tối đa được xác định bởi hệ thống. Ví dụ, trên nền tảng dựa trên Windows, con đường 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ó giấy phép 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, con đường chứa một ký tự vỏ (:) không phải là một phần của một nhãn ổ đĩa (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

Danh mục được chỉ định theo con đường là một tệp. -or- Tên mạng không được biết.

InvalidDataException

Mật khẩu sai đã được cung cấp. - hoặc - Archive is corrupt.

Save(Stream, ArchiveSaveOptions)

Tiết kiệm lưu trữ cho dòng cung cấp.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

Destination dòng

saveOptions ArchiveSaveOptions

Tùy chọn lưu trữ lưu trữ.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarks

phải có thể viết.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Tài liệu đã bị xóa bỏ.

Save(Trang chủ ArchiveSaveOptions)

Tiết kiệm lưu trữ đến tệp đích được cung cấp.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

Nếu tên tệp được chỉ định cho một tệp hiện có, nó sẽ được viết quá.

saveOptions ArchiveSaveOptions

Tùy chọn lưu trữ lưu trữ.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

Nó có thể được lưu trữ một tập tin theo cùng một con đường như nó đã được tải về từ. tuy nhiên, điều này không được khuyến khích bởi vì phương pháp này sử dụng sao chép vào một tập tin tạm thời.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Người gọi không có giấy phép cần thiết để truy cập.

ArgumentException

destinationFileName’ là trống, chỉ chứa các không gian trắng, hoặc chứa các ký tự vô hiệu.

UnauthorizedAccessException

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

PathTooLongException

Mục đích cụ thể destinationFileName’, tên tệp, hoặc cả hai vượt quá chiều dài tối đa được xác định bởi hệ thống.Ví dụ, trên nền tảng dựa trên Windows, con đường phải nhỏ hơn 248 ký tự, và tên tệp phải nhỏ hơn 260 ký tự.

NotSupportedException

File tại destinationFileName’ chứa một cột (:) ở giữa dòng.

FileNotFoundException

file không được tìm thấy.

DirectoryNotFoundException

Con đường được chỉ định là vô hiệu, chẳng hạn như ở trên một ổ đĩa không được vẽ.

IOException

Tệp đã mở rồi.

SaveSplit(Thẻ, SplitArchiveSaveOptions)

Tiết kiệm lưu trữ đa khối vào thư mục đích được cung cấp.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Con đường đến thư mục nơi các phân khúc lưu trữ sẽ được tạo.

options SplitArchiveSaveOptions

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

Examples

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

Remarks

Phương pháp này bao gồm nhiều () file filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Không thể tạo ra nhiều khối lượng lưu trữ hiện có.

Exceptions

InvalidOperationException

Tài liệu này được mở từ nguồn hiện có.

NotSupportedException

Tài liệu này được nén bằng phương pháp XZ và mã hóa.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Người gọi không có giấy phép cần thiết để truy cập thư mục.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

Đường được chỉ định vượt quá chiều dài tối đa được xác định bởi hệ thống.

ObjectDisposedException

Tài liệu đã bị xóa bỏ.

 Tiếng Việt