Class Archive

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

object Archive

Implements

IArchive , IDisposable

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

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

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

ArgumentNullException

path’ is null.

SecurityException

Panggilan tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

path’ kosong, hanya mengandung ruang putih, atau mengandung karakter yang tidak sah.

UnauthorizedAccessException

Akses ke file path’ ditolak.

PathTooLongException

Contohnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di path’ mengandung kolom (:) di tengah string.

FileNotFoundException

File tersebut tidak ditemukan.

DirectoryNotFoundException

Jalur yang ditentukan tidak sah, misalnya berada di drive yang tidak dipetakan.

IOException

File sudah terbuka.

InvalidDataException

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

EndOfStreamException

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

ArchiveEntrySettings

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

Archive

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

DirectoryNotFoundException

Jalan menuju directory’ tidak sah, misalnya berada pada drive yang tidak dipetakan.

SecurityException

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

Archive

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

ArchiveEntry

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

ArgumentNullException

path’ is null.

SecurityException

Panggilan tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

path’ kosong, hanya mengandung ruang putih, atau mengandung karakter yang tidak sah.

UnauthorizedAccessException

Akses ke file path’ ditolak.

PathTooLongException

Contohnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

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

ArchiveEntry

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

ArchiveEntry

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

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Jalur yang ditentukan tidak sah, misalnya berada di drive yang tidak dipetakan.

IOException

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

ArchiveEntry

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

InvalidOperationException

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

ArchiveEntry

Instansi masuk Zip.

Examples

Menyusun file dengan entri terenkripsi.

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

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

Archive

Arsip dengan entri dihapus.

Examples

Berikut cara menghapus semua entri kecuali yang terakhir:

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

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

Archive

Arsip dengan entri dihapus.

Examples

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

Exceptions

ObjectDisposedException

Arsip sudah diselesaikan.

ArgumentOutOfRangeException

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

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Contohnya, pada platform berbasis Windows, jalur harus kurang dari 248 karakter dan nama file harus kurang dari 260 karakter.

SecurityException

Panggilan tidak memiliki izin yang diperlukan untuk mengakses direktori yang ada.

NotSupportedException

Jika direktori tidak ada, jalur ini mengandung karakter kolon (:) yang bukan bagian dari label drive (“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

Direktori yang ditentukan oleh jalur adalah file. -or- Nama jaringan tidak diketahui.

InvalidDataException

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

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

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

ArgumentNullException

destinationFileName’ is null.

SecurityException

Panggilan tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

destinationFileName’ kosong, hanya mengandung ruang putih, atau mengandung karakter yang tidak sah.

UnauthorizedAccessException

Akses ke file destinationFileName’ ditolak.

PathTooLongException

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.

NotSupportedException

File di destinationFileName’ mengandung kolom (:) di tengah string.

FileNotFoundException

File tersebut tidak ditemukan.

DirectoryNotFoundException

Jalur yang ditentukan tidak sah, misalnya berada di drive yang tidak dipetakan.

IOException

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

InvalidOperationException

Arsip ini dibuka dari sumber yang ada.

NotSupportedException

Arsip ini dikompresi dengan metode XZ dan disulitkan.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Panggilan tidak memiliki izin yang diperlukan untuk mengakses direktori.

ArgumentException

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

PathTooLongException

Jalur yang ditentukan melebihi panjang maksimum yang ditentukan oleh sistem.

ObjectDisposedException

Arsip tersebut sudah dihapus.

 Indonesia