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
Mengimplementasikan
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
sourceStream
tidak dapat dicari.
sourceStream
adalah null.
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
path
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
path
kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.
Akses ke file path
ditolak.
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.
File di path
mengandung tanda titik dua (:) di tengah string.
File tidak ditemukan.
Path yang ditentukan tidak valid, seperti berada di drive yang tidak dipetakan.
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
parts
adalah null.
parts
tidak memiliki entri.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
Path ke file kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.
Akses ke file ditolak.
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.
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>
NewEntrySettings
Pengaturan kompresi dan enkripsi yang digunakan untuk item Aspose.Zip.SevenZip.SevenZipArchiveEntry yang baru ditambahkan.
public SevenZipEntrySettings NewEntrySettings { get; }
Nilai Properti
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
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
Path ke directory
tidak valid, seperti berada di drive yang tidak dipetakan.
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
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
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
fileInfo
hanya dapat dibaca atau merupakan direktori.
Path yang ditentukan tidak valid, seperti berada di drive yang tidak dipetakan.
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
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
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
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
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
path
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
path
kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.
Akses ke file path
ditolak.
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.
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
destinationDirectory
adalah null.
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.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori yang ada.
Jika direktori tidak ada, path mengandung karakter titik dua (:) yang bukan bagian dari label drive (“C:").
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 (:).
Direktori yang ditentukan oleh path adalah file. -atau- Nama jaringan tidak dikenal.
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
output
tidak mendukung pencarian.
output
adalah null.
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
destinationFileName
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses.
destinationFileName
kosong, hanya berisi spasi putih, atau mengandung karakter yang tidak valid.
Akses ke file destinationFileName
ditolak.
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.
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
Arsip ini dibuka dari sumber yang ada.
destinationDirectory
adalah null.
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori.
destinationDirectory
mengandung karakter yang tidak valid seperti “, >, <, atau |.