Class Archive
Nama dari : Aspose.Zip Perhitungan: Aspose.Zip.dll (25.5.0)
Kelas ini mewakili file arsip zip. Gunakan untuk menyusun, mengekstrak, atau memperbarui file zip .
public class Archive : IArchive, IDisposableInheritance
Implements
anggota yang diwarisi
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
Archive(ArchiveEntrySettings)
Inicialisasi instansi baru dari kelas Aspose.Zip.Archive dengan pengaturan pilihan untuk entri.
public Archive(ArchiveEntrySettings newEntrySettings = null)Parameters
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.ArchiveEntry yang baru ditambahkan.Jika tidak dinyatakan, kompresi Deflate yang paling umum tanpa enkripsi akan digunakan.
Examples
Contoh berikut menunjukkan bagaimana untuk memampatkan satu file dengan pengaturan default.
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)
Inicialisasi contoh baru dari kelas Aspose.Zip.Archive dan menyusun daftar entri yang dapat dikeluarkan dari arkib.
public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)Parameters
sourceStream Stream
sumber dari arkib tersebut.
loadOptions ArchiveLoadOptions
Pilihan untuk mengunggah arsip yang ada dengan.
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.ArchiveEntry yang baru ditambahkan.Jika tidak dinyatakan, kompresi Deflate yang paling umum tanpa enkripsi akan digunakan.
Examples
Contoh berikut mengekstrak arsip terenkripsi, kemudian mengecilkan entri pertama ke .
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
Konstruktor ini tidak dekompresi entri apa pun. lihat Aspose.Zip.ArchiveEntry.Open(System.String) metode untuk dekompresi.
Exceptions
sourceStream’ is not seekable.
Kepala enkripsi untuk AES bertentangan dengan metode kompresi WinZip.
Archive(Pengaturan, ArchiveLoadOptions, ArchiveEntrySettings)
Inicialisasi contoh baru dari kelas Aspose.Zip.Archive dan menyusun daftar entri yang dapat dikeluarkan dari arkib.
public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)Parameters
path string
Kelayakan penuh atau jalur relatif ke file arkib.
loadOptions ArchiveLoadOptions
Pilihan untuk mengunggah arsip yang ada dengan.
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.ArchiveEntry yang baru ditambahkan.Jika tidak dinyatakan, kompresi Deflate yang paling umum tanpa enkripsi akan digunakan.
Examples
Contoh berikut mengekstrak arsip terenkripsi, kemudian mengecilkan entri pertama ke .
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
Konstruktor ini tidak dekompresi entri apa pun. lihat Aspose.Zip.ArchiveEntry.Open(System.String) metode untuk dekompresi.
Exceptions
path’ is null.
Panggilan tidak memiliki izin yang diperlukan untuk mengakses.
path’ kosong, hanya mengandung ruang putih, atau mengandung karakter yang tidak sah.
Akses ke file path’ ditolak.
Contohnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.
File di path’ mengandung kolom (:) di tengah string.
File tersebut tidak ditemukan.
Jalur yang ditentukan tidak sah, misalnya berada di drive yang tidak dipetakan.
File sudah terbuka.
File tersebut sudah rusak.
Archive(String dan String[ ], Informasi ArchiveLoadOptions)
Inicialisasi contoh baru dari kelas Aspose.Zip.Archive dari arsip zip multi-volume dan menyusun daftar entri yang dapat dikeluarkan dari arsip.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)Parameters
mainSegment string
Jalan ke segmen terakhir arsip multi-volume dengan direktori pusat.
Biasanya segmen ini memiliki *.zip perpanjangan dan lebih kecil dari yang lain.
segmentsInOrder string
[ ]
Langkah ke setiap segmen tetapi yang terakhir dari multi-volume zip file mematuhi perintah.
Biasanya mereka menamakan filename.z01, filename.z02, …, filename.z(n-1).
loadOptions ArchiveLoadOptions
Pilihan untuk mengunggah arsip yang ada dengan.
Examples
Sampel ini mengekstrak ke direktori sebuah arkib tiga segmen.
using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
a.ExtractToDirectory("destination");
}Exceptions
Tidak dapat mengisi headers ZIP karena file yang disediakan rusak.
Properties
Entries
Dapatkan entri dari Aspose.Zip.ArchiveEntry jenis yang membentuk arkib.
public ReadOnlyCollection<archiveentry> Entries { get; }Nilai Properti
ReadOnlyCollection dan lt; ArchiveEntry >
NewEntrySettings
Tetapan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.ArchiveEntry yang baru ditambahkan.
public ArchiveEntrySettings NewEntrySettings { get; }Nilai Properti
Methods
CreateEntries(Informasi lengkap, bool)
Tambah ke arkib semua file dan direktori secara berulang-ulang dalam catatan yang diberikan.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)Parameters
directory DirectoryInfo
direktori untuk kompresi.
includeRootDirectory bool
Menunjukkan apakah untuk memasukkan direktori akar itu sendiri atau tidak.
Returns
Arsip dengan entri yang disusun.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}Exceptions
Jalan menuju directory’ tidak sah, misalnya berada pada drive yang tidak dipetakan.
Panggilan tidak memiliki izin yang diperlukan untuk mengakses directory'.
CreateEntries(Kekuatan, Bool)
Tambah ke arkib semua file dan direktori secara berulang-ulang dalam catatan yang diberikan.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)Parameters
sourceDirectory string
direktori untuk kompresi.
includeRootDirectory bool
Menunjukkan apakah untuk memasukkan direktori akar itu sendiri atau tidak.
Returns
Arsip dengan entri yang disusun.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntries("C:\folder");
archive.Save("folder.zip");
}CreateEntry(string, string, bool, ArchiveEntrySettings)
Mencipta satu entri dalam arkib.
public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Nama dari pintu masuk.
path string
Nama file baru, atau nama file relatif yang akan dikompresi.
openImmediately bool
Memang benar, jika Anda membuka file dengan serta-merta, jika tidak, buka file pada penyimpanan.
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi digunakan untuk menambahkan Aspose.Zip.ArchiveEntry item.
Returns
Instansi masuk 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
Nama input hanya ditetapkan dalam parameter. nama file yang disediakan dalam parameter tidak mempengaruhi nama input. Jika file dibuka dengan segera dengan parameter itu diblokir sampai arkib disimpan.
Exceptions
path’ is null.
Panggilan tidak memiliki izin yang diperlukan untuk mengakses.
path’ kosong, hanya mengandung ruang putih, atau mengandung karakter yang tidak sah.
Akses ke file path’ ditolak.
Contohnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.
File di path’ mengandung kolom (:) di tengah string.
CreateEntry(String, Stream dan ArchiveEntrySettings)
Mencipta satu entri dalam arkib.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Nama dari pintu masuk.
source Stream
Langkah masuk untuk masuk.
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi digunakan untuk menambahkan Aspose.Zip.ArchiveEntry item.
Returns
Instansi masuk 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)
Mencipta satu entri dalam arkib.
public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Nama dari pintu masuk.
fileInfo FileInfo
Metadata file harus dikompresi.
openImmediately bool
Memang benar, jika Anda membuka file dengan serta-merta, jika tidak, buka file pada penyimpanan.
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi digunakan untuk menambahkan Aspose.Zip.ArchiveEntry item.
Returns
Instansi masuk Zip.
Examples
Komposisi arkib dengan entri yang disulitkan dengan metode enkripsi yang berbeda dan kata sandi masing-masing.
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
Nama input hanya ditetapkan dalam parameter. nama file yang disediakan dalam parameter tidak mempengaruhi nama input. Jika file dibuka dengan segera dengan parameter itu diblokir sampai arkib disimpan.
Exceptions
fileInfo’ is read-only or is a directory.
Jalur yang ditentukan tidak sah, misalnya berada di drive yang tidak dipetakan.
File sudah terbuka.
CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)
Mencipta satu entri dalam arkib.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)Parameters
name string
Nama dari pintu masuk.
source Stream
Langkah masuk untuk masuk.
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi digunakan untuk menambahkan Aspose.Zip.ArchiveEntry item.
fileInfo FileSystemInfo
Metadata file atau folder untuk dikompresi.
Returns
Instansi masuk Zip.
Examples
Menyusun file dengan entri terenkripsi.
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
Nama input hanya ditetapkan dalam parameter. nama file yang disediakan dalam parameter tidak mempengaruhi nama input. dapat merujuk ke System.IO.DirectoryInfo jika entri adalah direktori.
Exceptions
Kedua source’ dan fileInfo’ adalah null atau source’ adalah null dan fileInfo’ adalah untuk direktori.
CreateEntry(String dan Func, dan ArchiveEntrySettings)
Mencipta satu entri dalam arkib.
public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Nama dari pintu masuk.
streamProvider Func
dan lt;
Stream
>
Metode yang menyediakan input stream untuk input.
newEntrySettings ArchiveEntrySettings
Tetapan kompresi dan enkripsi digunakan untuk menambahkan Aspose.Zip.ArchiveEntry item.
Returns
Instansi masuk Zip.
Examples
Menyusun file dengan entri terenkripsi.
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
Metode ini berlaku untuk .NET Framework 4.0 dan di atas dan untuk .NET Standard 2.0 versi.
DeleteEntry(ArchiveEntry)
Menghapus penampilan pertama entri tertentu dari daftar entri.
public Archive DeleteEntry(ArchiveEntry entry)Parameters
entry ArchiveEntry
Kemasukan untuk dihapus dari daftar kemasukan.
Returns
Arsip dengan entri dihapus.
Examples
Berikut cara menghapus semua entri kecuali yang terakhir:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}Exceptions
Arsip tersebut sudah dihapus.
DeleteEntry(int)
Menghapus entri dari daftar entri dengan indeks.
public Archive DeleteEntry(int entryIndex)Parameters
entryIndex int
Indeks berbasis nol dari entri yang harus dihapus.
Returns
Arsip dengan entri dihapus.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}Exceptions
Arsip sudah diselesaikan.
entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.
Dispose()
Melaksanakan tugas-tugas yang ditentukan oleh aplikasi yang terkait dengan pembebasan, pembebasan, atau reset sumber daya yang tidak dikelola.
public void Dispose()Dispose(Bool)
Melaksanakan tugas-tugas yang ditentukan oleh aplikasi yang terkait dengan pembebasan, pembebasan, atau reset sumber daya yang tidak dikelola.
protected virtual void Dispose(bool disposing)Parameters
disposing bool
Apakah sumber daya yang dikelola harus dihapus.
ExtractToDirectory(String)
Mengekstrak semua file dalam arkib ke direktori yang disediakan.
public void ExtractToDirectory(string destinationDirectory)Parameters
destinationDirectory string
Jalan menuju direktori untuk menempatkan file yang dikeluarkan.
Examples
using (var archive = new Archive("archive.zip"))
{
archive.ExtractToDirectory("C:\extracted");
}Remarks
Jika direktori tidak ada, itu akan dibuat.
Exceptions
destinationDirectory’ is null.
Contohnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter dan nama file harus kurang dari 260 karakter.
Panggilan tidak memiliki izin yang diperlukan untuk mengakses direktori yang ada.
Jika direktori tidak ada, jalur ini mengandung karakter kolon (:) yang bukan bagian dari label drive (“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 (:).
Direktori yang ditentukan oleh jalur adalah file. -or- Nama jaringan tidak diketahui.
Kata sandi yang salah telah disampaikan. - atau - Arkib yang rosak.
Save(Informasi, ArchiveSaveOptions)
Simpan file ke arus yang disediakan.
public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)Parameters
outputStream Stream
Destinasi dari Stream.
saveOptions ArchiveSaveOptions
Pilihan penyimpanan arsip.
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
harus dapat ditulis.
Exceptions
outputStream’ is not writable.
Arsip tersebut sudah dihapus.
Save(Keterangan, ArchiveSaveOptions)
Simpan file ke file tujuan yang disediakan.
public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)Parameters
destinationFileName string
Jika nama file yang ditentukan menunjuk ke file yang ada, itu akan ditulis kembali.
saveOptions ArchiveSaveOptions
Pilihan penyimpanan arsip.
Examples
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save("archive.zip", new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}Remarks
Namun, ini tidak disarankan karena pendekatan ini menggunakan salinan ke file sementara.
Exceptions
destinationFileName’ is null.
Panggilan tidak memiliki izin yang diperlukan untuk mengakses.
destinationFileName’ kosong, hanya mengandung ruang putih, atau mengandung karakter yang tidak sah.
Akses ke file destinationFileName’ ditolak.
Destinasi destinationFileName’, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem.Sebagai contoh, pada platform berbasis Windows, jalur harus kurang dari 248 aksara, dan nama file harus kurang dari 260 aksara.
File di destinationFileName’ mengandung kolom (:) di tengah string.
File tersebut tidak ditemukan.
Jalur yang ditentukan tidak sah, misalnya berada di drive yang tidak dipetakan.
File sudah terbuka.
SaveSplit(String, SplitArchiveSaveOptions)
Menyimpan arsip multi-volume ke direktori tujuan yang disediakan.
public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)Parameters
destinationDirectory string
Jalan menuju direktori di mana segmen arkib harus dibuat.
options SplitArchiveSaveOptions
Pilihan untuk menyimpan file, termasuk nama file.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitArchiveSaveOptions("volume", 65536));
}Remarks
Metode ini terdiri dari beberapa () file filename.z01, filename.z02, …, filename.z(n-1), filename.zip. Tidak dapat membuat arsip multi-volume yang ada.
Exceptions
Arsip ini dibuka dari sumber yang ada.
Arsip ini dikompresi dengan metode XZ dan disulitkan.
destinationDirectory’ is null.
Panggilan tidak memiliki izin yang diperlukan untuk mengakses direktori.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Jalur yang ditentukan melebihi panjang maksimum yang ditentukan oleh sistem.
Arsip tersebut sudah dihapus.