Class SevenZipArchive

Class SevenZipArchive

Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)

Kelas ini merepresentasikan file arsip 7z. Gunakan ini untuk menyusun dan mengekstrak arsip 7z.

public class SevenZipArchive : IArchive, IDisposable

Pewarisan

objectSevenZipArchive

Mengimplementasikan

IArchive, IDisposable

Anggota yang Dwarisi

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

Konstruktor

SevenZipArchive(SevenZipEntrySettings)

Menginisialisasi instance baru dari kelas Aspose.Zip.SevenZip.SevenZipArchive dengan pengaturan opsional untuk entri-entri nya.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Parameter

newEntrySettings SevenZipEntrySettings

Pengaturan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.SevenZip.SevenZipArchiveEntry yang baru ditambahkan. Jika tidak ditentukan, kompresi LZMA tanpa enkripsi akan digunakan.

Contoh

Contoh berikut menunjukkan cara mengompresi satu file dengan pengaturan default: kompresi LZMA tanpa enkripsi.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Menginisialisasi instance baru dari kelas Aspose.Zip.SevenZip.SevenZipArchive dan menyusun daftar entri yang dapat diekstrak dari arsip.

public SevenZipArchive(Stream sourceStream, string password = null)

Parameter

sourceStream Stream

Sumber arsip.

password string

Kata sandi opsional untuk dekripsi. Jika nama file terenkripsi, kata sandi ini harus ada.

Contoh

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Keterangan

Konstruktor ini tidak mendekompresi entri apa pun. Lihat metode Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) untuk dekompresi.

Pengecualian

ArgumentException

sourceStream tidak dapat dicari.

ArgumentNullException

sourceStream adalah null.

NotImplementedException

Arsip berisi lebih dari satu coder. Saat ini hanya kompresi LZMA yang didukung.

SevenZipArchive(string, string)

Menginisialisasi instance baru dari kelas Aspose.Zip.SevenZip.SevenZipArchive dan menyusun daftar entri yang dapat diekstrak dari arsip.

public SevenZipArchive(string path, string password = null)

Parameter

path string

Path lengkap atau relatif ke file arsip.

password string

Kata sandi opsional untuk dekripsi. Jika nama file terenkripsi, kata sandi ini harus ada.

Contoh

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Keterangan

Konstruktor ini tidak mendekompresi entri apa pun. Lihat metode Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) untuk dekompresi.

Pengecualian

ArgumentNullException

path adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

path kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.

UnauthorizedAccessException

Akses ke file path ditolak.

PathTooLongException

path, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, pada platform berbasis Windows, path harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di path mengandung tanda titik dua (:) di tengah string.

FileNotFoundException

File tidak ditemukan.

DirectoryNotFoundException

Path yang ditentukan tidak valid, seperti berada di drive yang tidak dipetakan.

IOException

File sudah terbuka.

SevenZipArchive(string[], string)

Menginisialisasi instance baru dari kelas Aspose.Zip.SevenZip.SevenZipArchive dari arsip 7z multi-volume dan menyusun daftar entri yang dapat diekstrak dari arsip.

public SevenZipArchive(string[] parts, string password = null)

Parameter

parts string[]

Path ke setiap segmen arsip 7z multi-volume sesuai urutan.

password string

Kata sandi opsional untuk dekripsi. Jika nama file terenkripsi, kata sandi ini harus ada.

Contoh

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Pengecualian

ArgumentNullException

parts adalah null.

ArgumentException

parts tidak memiliki entri.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

Path ke file kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.

UnauthorizedAccessException

Akses ke file ditolak.

PathTooLongException

Path yang ditentukan untuk bagian, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, pada platform berbasis Windows, path harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di path mengandung tanda titik dua (:) di tengah string.

Properti

Entries

Mendapatkan entri dari tipe Aspose.Zip.SevenZip.SevenZipArchiveEntry yang membentuk arsip.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Nilai Properti

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Pengaturan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.SevenZip.SevenZipArchiveEntry yang baru ditambahkan.

public SevenZipEntrySettings NewEntrySettings { get; }

Nilai Properti

SevenZipEntrySettings

Metode

CreateEntries(DirectoryInfo, bool)

Menambahkan semua file dan direktori secara rekursif ke dalam arsip di direktori yang diberikan.

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

Parameter

directory DirectoryInfo

Direktori untuk dikompresi.

includeRootDirectory bool

Menunjukkan apakah akan menyertakan direktori root itu sendiri atau tidak.

Mengembalikan

SevenZipArchive

Arsip dengan entri yang disusun.

Contoh

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Pengecualian

DirectoryNotFoundException

Path ke directory tidak valid, seperti berada di drive yang tidak dipetakan.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses directory.

CreateEntries(string, bool)

Menambahkan semua file dan direktori secara rekursif ke dalam arsip di direktori yang diberikan.

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

Parameter

sourceDirectory string

Direktori untuk dikompresi.

includeRootDirectory bool

Menunjukkan apakah akan menyertakan direktori root itu sendiri atau tidak.

Mengembalikan

SevenZipArchive

Arsip dengan entri yang disusun.

Contoh

Susun arsip 7z dengan kompresi LZMA2.

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Buat entri tunggal di dalam arsip.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parameter

name string

Nama entri.

fileInfo FileInfo

Metadata dari file yang akan dikompresi.

openImmediately bool

True jika file dibuka segera, jika tidak, file dibuka saat arsip disimpan.

newEntrySettings SevenZipEntrySettings

Pengaturan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.SevenZip.SevenZipArchiveEntry yang ditambahkan.

Mengembalikan

SevenZipArchiveEntry

Instansi entri Seven Zip.

Contoh

Susun arsip dengan entri yang terenkripsi dengan kata sandi yang berbeda masing-masing.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Keterangan

Nama entri ditetapkan hanya dalam parameter name. Nama file yang diberikan dalam parameter fileInfo tidak mempengaruhi nama entri.

Jika file dibuka segera dengan parameter openImmediately, maka file tersebut akan diblokir sampai arsip disimpan.

Pengecualian

UnauthorizedAccessException

fileInfo hanya dapat dibaca atau merupakan direktori.

DirectoryNotFoundException

Path yang ditentukan tidak valid, seperti berada di drive yang tidak dipetakan.

IOException

File sudah terbuka.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Buat entri tunggal di dalam arsip.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameter

name string

Nama entri.

source Stream

Aliran input untuk entri.

newEntrySettings SevenZipEntrySettings

Pengaturan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.SevenZip.SevenZipArchiveEntry yang ditambahkan.

fileInfo FileSystemInfo

Metadata dari file atau folder yang akan dikompresi.

Mengembalikan

SevenZipArchiveEntry

Instansi entri SevenZip.

Contoh

Susun arsip dengan entri yang terkompresi LZMA2 dan terenkripsi.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

Keterangan

Nama entri ditetapkan hanya dalam parameter name. Nama file yang diberikan dalam parameter fileInfo tidak mempengaruhi nama entri.

fileInfo dapat merujuk ke System.IO.DirectoryInfo jika entri adalah direktori.

Pengecualian

InvalidOperationException

Baik source dan fileInfo adalah null atau source adalah null dan fileInfo adalah direktori.

CreateEntry(string, Stream, SevenZipEntrySettings)

Buat entri tunggal di dalam arsip.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

Parameter

name string

Nama entri.

source Stream

Aliran input untuk entri.

newEntrySettings SevenZipEntrySettings

Pengaturan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.SevenZip.SevenZipArchiveEntry yang ditambahkan.

Mengembalikan

SevenZipArchiveEntry

Instansi entri Zip.

Contoh

Susun arsip 7z dengan kompresi LZMA2 dan enkripsi semua entri.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

Buat entri tunggal di dalam arsip.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parameter

name string

Nama entri.

path string

Nama file baru yang lengkap, atau nama file relatif yang akan dikompresi.

openImmediately bool

True jika file dibuka segera, jika tidak, file dibuka saat arsip disimpan.

newEntrySettings SevenZipEntrySettings

Pengaturan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.SevenZip.SevenZipArchiveEntry yang ditambahkan.

Mengembalikan

SevenZipArchiveEntry

Instansi entri Zip.

Contoh

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Keterangan

Nama entri ditetapkan hanya dalam parameter name. Nama file yang diberikan dalam parameter path tidak mempengaruhi nama entri.

Jika file dibuka segera dengan parameter openImmediately, maka file tersebut akan diblokir sampai arsip disimpan.

Pengecualian

ArgumentNullException

path adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

path kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.

UnauthorizedAccessException

Akses ke file path ditolak.

PathTooLongException

path, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, pada platform berbasis Windows, path harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di path mengandung tanda titik dua (:) di tengah string.

Dispose()

Melakukan tugas yang ditentukan aplikasi terkait dengan membebaskan, melepaskan, atau mengatur ulang sumber daya yang tidak dikelola.

public void Dispose()

Dispose(bool)

Melakukan tugas yang ditentukan aplikasi terkait dengan membebaskan, melepaskan, atau mengatur ulang sumber daya yang tidak dikelola.

protected virtual void Dispose(bool disposing)

Parameter

disposing bool

Apakah sumber daya yang dikelola harus dibebaskan.

ExtractToDirectory(string, string)

Mengekstrak semua file dalam arsip ke direktori yang disediakan.

public void ExtractToDirectory(string destinationDirectory, string password = null)

Parameter

destinationDirectory string

Path ke direktori untuk menempatkan file yang diekstrak.

password string

Kata sandi opsional untuk dekripsi konten.

Contoh

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Keterangan

Jika direktori tidak ada, itu akan dibuat.

password digunakan hanya untuk dekripsi konten. Jika nama file terenkripsi, berikan kata sandi di konstruktor Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) atau Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).

Pengecualian

ArgumentNullException

destinationDirectory adalah null.

PathTooLongException

path, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, pada platform berbasis Windows, path harus kurang dari 248 karakter dan nama file harus kurang dari 260 karakter.

SecurityException

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

NotSupportedException

Jika direktori tidak ada, path mengandung karakter titik dua (:) yang bukan bagian dari label drive (“C:").

ArgumentException

destinationDirectory adalah string dengan panjang nol, hanya berisi spasi putih, atau mengandung satu atau lebih karakter yang tidak valid. Anda dapat menanyakan karakter yang tidak valid dengan menggunakan metode System.IO.Path.GetInvalidPathChars -atau- path diawali dengan, atau hanya berisi, karakter titik dua (:).

IOException

Direktori yang ditentukan oleh path adalah file. -atau- Nama jaringan tidak dikenal.

InvalidDataException

Arsip rusak.

Save(Stream)

Menyimpan arsip 7z ke aliran yang diberikan.

public void Save(Stream output)

Parameter

output Stream

Aliran tujuan.

Contoh

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

Keterangan

output harus dapat dicari.

Pengecualian

ArgumentException

output tidak mendukung pencarian.

ArgumentNullException

output adalah null.

InvalidOperationException

Encoder gagal mengompresi data.

Save(string)

Menyimpan arsip ke file tujuan yang diberikan.

public void Save(string destinationFileName)

Parameter

destinationFileName string

Path arsip yang akan dibuat. Jika nama file yang ditentukan mengarah ke file yang ada, file tersebut akan ditimpa.

Contoh

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

Keterangan

Dimungkinkan untuk menyimpan arsip ke path yang sama seperti yang dimuat dari. Namun, ini tidak disarankan karena pendekatan ini menggunakan penyalinan ke file sementara.

Pengecualian

ArgumentNullException

destinationFileName adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.

ArgumentException

destinationFileName kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.

UnauthorizedAccessException

Akses ke file destinationFileName ditolak.

PathTooLongException

destinationFileName, nama file, atau keduanya melebihi panjang maksimum yang ditentukan oleh sistem. Misalnya, pada platform berbasis Windows, path harus kurang dari 248 karakter, dan nama file harus kurang dari 260 karakter.

NotSupportedException

File di destinationFileName mengandung tanda titik dua (:) di tengah string.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Menyimpan arsip multi-volume ke direktori tujuan yang diberikan.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Parameter

destinationDirectory string

Path ke direktori tempat segmen arsip akan dibuat.

options SplitSevenZipArchiveSaveOptions

Opsi untuk penyimpanan arsip, termasuk nama file.

Contoh

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

Keterangan

Metode ini menyusun beberapa (n) nama file.7z.001, nama file.7z.002, ..., nama file.7z.(n).

Tidak dapat membuat arsip yang ada menjadi multi-volume.

Pengecualian

InvalidOperationException

Arsip ini dibuka dari sumber yang ada.

ArgumentNullException

destinationDirectory adalah null.

SecurityException

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori.

ArgumentException

destinationDirectory mengandung karakter yang tidak valid seperti “, >, <, atau |.

 Indonesia