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
Implements
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
sourceStream’ is not seekable.
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
path’ is null.
Người gọi không có giấy phép cần thiết để truy cập.
Đườ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.
Truy cập vào tệp path" bị từ chối.
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ự.
Tệp ở path’ chứa một cột (:) ở giữa dòng.
file không được tìm thấy.
Con đường được chỉ định là vô hiệu, chẳng hạn như ở trên một ổ đĩa không được vẽ.
Tệp đã mở rồi.
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
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
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 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
Con đường đến directory’ là vô hiệu, chẳng hạn như là trên một ổ đĩa không được bản đồ.
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 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
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
path’ is null.
Người gọi không có giấy phép cần thiết để truy cập.
Đườ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.
Truy cập vào tệp path" bị từ chối.
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ự.
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
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
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
fileInfo’ is read-only or is a directory.
Con đường được chỉ định là vô hiệu, chẳng hạn như ở trên một ổ đĩa không được vẽ.
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
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
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
Giai đoạn nhập zip.
Examples
Tích hợp file với nhập mã hóa.
System.Func<Stream> 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 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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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 with entry đã bị xóa.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Archive đã được giải quyết.
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
destinationDirectory’ is null.
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ự.
Người gọi không có giấy phép cần thiết để truy cập thư mục hiện có.
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:”).
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 (:).
Danh mục được chỉ định theo con đường là một tệp. -or- Tên mạng không được biết.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
Người gọi không có giấy phép cần thiết để truy cập.
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.
Truy cập vào tệp destinationFileName’ bị từ chối.
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ự.
File tại destinationFileName’ chứa một cột (:) ở giữa dòng.
file không được tìm thấy.
Con đường được chỉ định là vô hiệu, chẳng hạn như ở trên một ổ đĩa không được vẽ.
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
Tài liệu này được mở từ nguồn hiện có.
Tài liệu này được nén bằng phương pháp XZ và mã hóa.
destinationDirectory’ is null.
Người gọi không có giấy phép cần thiết để truy cập thư mục.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Đường được chỉ định vượt quá chiều dài tối đa được xác định bởi hệ thống.
Tài liệu đã bị xóa bỏ.