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, IDisposable
Inheritance
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.