Class SevenZipArchive

Class SevenZipArchive

Numele spaţiului: Aspose.Zip.SevenZip Asamblare: Aspose.Zip.dll (25.5.0)

Această clasă reprezintă fișierul de arhivă 7z. Utilizați-l pentru a compune și extrage arhivele 7z.

public class SevenZipArchive : IArchive, IDisposable

Inheritance

object SevenZipArchive

Implements

IArchive , IDisposable

Membrii moștenitori

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

Constructors

SevenZipArchive(SevenZipEntrySettings)

Inițializează o nouă instanță a clasei Aspose.Zip.SevenZip.SevenZipArchive cu setări opționale pentru intrările sale.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Parameters

newEntrySettings SevenZipEntrySettings

Setările de compresie și criptare utilizate pentru elementele nou adăugate Aspose.Zip.SevenZip.SevenZipArchiveEntry.Dacă nu este specificat, se va folosi compresia LZMA fără criptare.

Examples

Următorul exemplu arată cum să compresezi un singur fișier cu setările predefinite: Compresia LZMA fără criptare.

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

SevenZipArchive(Război, String)

Inițializează o nouă instanță a clasei Aspose.Zip.SevenZip.SevenZipArchive și compune o listă de intrări care poate fi extras din arhivă.

public SevenZipArchive(Stream sourceStream, string password = null)

Parameters

sourceStream Stream

Sursă a arhivelor.

password string

Password opțional pentru decodificare.Dacă numele fișierului este criptat, acesta trebuie să fie prezent.

Examples

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

Remarks

Acest constructor nu decomprime nicio intrare. a se vedea Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) metoda de decomprimare.

Exceptions

ArgumentException

sourceStream’ is not seekable.

ArgumentNullException

sourceStream’ is null.

NotImplementedException

Arhiva conține mai mult de un coder. acum doar compresia LZMA este susținută.

SevenZipArchive(String și String)

Inițializează o nouă instanță a clasei Aspose.Zip.SevenZip.SevenZipArchive și compune o listă de intrări care poate fi extras din arhivă.

public SevenZipArchive(string path, string password = null)

Parameters

path string

Calea complet calificată sau calea relativă către fișierul de arhivă.

password string

Password opțional pentru decodificare.Dacă numele fișierului este criptat, acesta trebuie să fie prezent.

Examples

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

Remarks

Acest constructor nu decomprime nicio intrare. a se vedea Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) metoda de decomprimare.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Solicitantul nu are permisiunea necesară de acces.

ArgumentException

Calea " este goală, conține doar spații albe sau conține caractere invalide.

UnauthorizedAccessException

Accesul la fișierul path" este refuzat.

PathTooLongException

Calea specificată path’, numele fișierului, sau ambele depășesc lungimea maximă definită de sistem. De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

NotSupportedException

Fișierul la path’ conține o coloană (:) în mijlocul stringului.

FileNotFoundException

Dosarul nu a fost găsit.

DirectoryNotFoundException

Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.

IOException

Dosarul este deja deschis.

SevenZipArchive(Strângere[], Stringă)

Inițializează o nouă instanță a clasei Aspose.Zip.SevenZip.SevenZipArchive din arhiva multi-volume 7z și compune o listă de intrări care poate fi extras din arhivă.

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

Parameters

parts string []

Calea către fiecare segment al arhivului multi-volume 7z respectând ordinea

password string

Password opțional pentru decodificare.Dacă numele fișierului este criptat, acesta trebuie să fie prezent.

Examples

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

Exceptions

ArgumentNullException

parts’ is null.

ArgumentException

parts’ has no entries.

SecurityException

Solicitantul nu are permisiunea necesară de acces.

ArgumentException

Calea către un fișier este goală, conține doar spații albe sau conține caractere invalide.

UnauthorizedAccessException

Accesul la un fișier este refuzat.

PathTooLongException

Calea specificată către o parte, numele fișierului sau ambele depășesc lungimea maximă definită de sistem. De exemplu, pe platforme bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

NotSupportedException

Fișierul pe o cale conține un colon (:) în mijlocul stringului.

Properties

Entries

Obține intrări de tip Aspose.Zip.SevenZip.SevenZipArchiveEntry care constituie arhiva.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Valoarea proprietății

ReadOnlyCollection < SevenZipArchiveEntry >

NewEntrySettings

Setările de compresie și criptare utilizate pentru elementele nou adăugate Aspose.Zip.SevenZip.SevenZipArchiveEntry.

public SevenZipEntrySettings NewEntrySettings { get; }

Valoarea proprietății

SevenZipEntrySettings

Methods

CreateEntries(Cuvânt cheie, bool)

Adăugați în arhiv toate fișierele și directorii în mod recurent în directorul dat.

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

Parameters

directory DirectoryInfo

Directoare pentru compresă.

includeRootDirectory bool

Indică dacă să includă directorul de rădăcină în sine sau nu.

Returns

SevenZipArchive

Arhiva cu intrări compuse.

Examples

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

Exceptions

DirectoryNotFoundException

Calea către directory" este invalidă, de exemplu fiind pe un disc necartat.

SecurityException

Solicitantul nu are permisiunea necesară pentru a accesa directory".

CreateEntries(Cuvânt cheie, bool)

Adăugați în arhiv toate fișierele și directorii în mod recurent în directorul dat.

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

Parameters

sourceDirectory string

Directoare pentru compresă.

includeRootDirectory bool

Indică dacă să includă directorul de rădăcină în sine sau nu.

Returns

SevenZipArchive

Arhiva cu intrări compuse.

Examples

Arhiva 7z se compune cu compresia LZMA2.

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

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

fileInfo FileInfo

Metadata fișierului trebuie să fie comprimată.

openImmediately bool

Adevărat, dacă deschideți imediat fișierul, în caz contrar deschideți fișierul pe stocarea arhivelor.

newEntrySettings SevenZipEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Returns

SevenZipArchiveEntry

7 puncte de intrare ZIP.

Examples

Combinați arhiva cu intrări criptate cu diferite parole fiecare.

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);
    }
}

Remarks

Numele de intrare este setat numai în parametru. numele de fișier furnizat în parametru nu afectează numele de intrare.

Dacă fișierul este deschis imediat cu parametru, acesta este blocat până când arhiva este salvată.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.

IOException

Dosarul este deja deschis.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

source Stream

Rata de intrare pentru intrare.

newEntrySettings SevenZipEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.SevenZip.SevenZipArchiveEntry.

fileInfo FileSystemInfo

Metadata fișierului sau a folderului trebuie să fie compresă.

Returns

SevenZipArchiveEntry

7 intrare de intrare.

Examples

Arhiva se compune cu intrarea criptată LZMA2 compresă.

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);
    }
}

Remarks

Numele de intrare este setat numai în parametru. numele de fișier furnizat în parametru nu afectează numele de intrare.

se poate face referire la System.IO.DirectoryInfo dacă intrarea este directorie.

Exceptions

InvalidOperationException

Amândouă source’ și fileInfo’ sunt nule sau source’ este nule și fileInfo’ este pentru director.

CreateEntry(Strângere, Strângere, SevenZipEntrySettings)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

source Stream

Rata de intrare pentru intrare.

newEntrySettings SevenZipEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Returns

SevenZipArchiveEntry

Instanta de intrare ZIP.

Examples

Combinați arhiva 7z cu LZMA2 compresie și criptare a tuturor intrărilor.

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)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

path string

Denumirea complet calificată a noului fișier sau denumirea relativă a fișierului care urmează să fie comprimată.

openImmediately bool

Adevărat, dacă deschideți imediat fișierul, în caz contrar deschideți fișierul pe stocarea arhivelor.

newEntrySettings SevenZipEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Returns

SevenZipArchiveEntry

Instanta de intrare ZIP.

Examples

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);
    }
}

Remarks

Numele de intrare este setat numai în parametru. numele de fișier furnizat în parametru nu afectează numele de intrare.

Dacă fișierul este deschis imediat cu parametru, acesta este blocat până când arhiva este salvată.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Solicitantul nu are permisiunea necesară de acces.

ArgumentException

Calea " este goală, conține doar spații albe sau conține caractere invalide.

UnauthorizedAccessException

Accesul la fișierul path" este refuzat.

PathTooLongException

Calea specificată path’, numele fișierului, sau ambele depășesc lungimea maximă definită de sistem. De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

NotSupportedException

Fișierul la path’ conține o coloană (:) în mijlocul stringului.

Dispose()

Îndeplinește sarcini definite prin aplicare asociate cu eliberarea, eliberarea sau redistribuirea resurselor necontrolate.

public void Dispose()

Dispose(Boulă)

Îndeplinește sarcini definite prin aplicare asociate cu eliberarea, eliberarea sau redistribuirea resurselor necontrolate.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

În cazul în care resursele gestionate ar trebui să fie eliminate.

ExtractToDirectory(String și String)

Extrage toate fișierele din arhivă în directorul furnizat.

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

Parameters

destinationDirectory string

Calea către directorie pentru a pune în fișierele extrase.

password string

Password opțional pentru decodificarea conținutului.

Examples

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

Remarks

Dacă directorul nu există, acesta va fi creat.

În cazul în care numele de fișier sunt criptate, furnizați parola în Aspose.Zip.Seven ZipArchive.#ctor(System.String,Systeme. String) sau __ WL51.ZIP.Numărul de date.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Calea specificată, numele fișierului sau ambele depășesc lungimea maximă definită de sistem. De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

SecurityException

Solicitantul nu are permisiunea necesară pentru a accesa directorul existent.

NotSupportedException

Dacă directorul nu există, calea conține un caracter colon (:) care nu face parte dintr-o etichetă de disc (“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

Directoriul specificat de cale este un fișier. -or- Numele rețelei nu este cunoscut.

InvalidDataException

Arhiva este coruptă.

Save(Stream)

Salvează arhiva 7z în fluxul furnizat.

public void Save(Stream output)

Parameters

output Stream

Războiul de destinaţie.

Examples

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);
    }
  }
}

Remarks

Trebuie să fie căutată.

Exceptions

ArgumentException

output’ does not support seeking.

ArgumentNullException

output’ is null.

InvalidOperationException

Codatorul nu a reușit să comprime datele.

Save(Strângere)

Salvează arhiva la un fișier de destinație furnizat.

public void Save(string destinationFileName)

Parameters

destinationFileName string

Dacă numele fișierului specific se referă la un fișier existent, acesta va fi supraîncris.

Examples

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");
   }
}

Remarks

Este posibil să salvați un arhiv pe aceeași cale pe care a fost încărcat de la. Cu toate acestea, acest lucru nu este recomandat deoarece această abordare utilizează copierea la un fișier temporar.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Solicitantul nu are permisiunea necesară de acces.

ArgumentException

destinationFileName’ este gol, conține doar spații albe sau conține caractere invalide.

UnauthorizedAccessException

Accesul la fișierul destinationFileName’ este refuzat.

PathTooLongException

De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

NotSupportedException

Fișierul la destinationFileName’ conține o coloană (:) în mijlocul stringului.

SaveSplit(Cuvânt cheie, SplitSevenZipArchiveSaveOptions)

Salvează arhiva multi-volume la directorul de destinație furnizat.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Parameters

destinationDirectory string

Calea către directorul în care se creează segmentele de arhivă.

options SplitSevenZipArchiveSaveOptions

Opțiuni pentru stocarea arhivelor, inclusiv numele fișierului.

Examples

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

Remarks

Această metodă conține mai multe () fișiere filename.7z.001, filename.7z.002, …, filename.7z.(n).

Nu se poate face un arhiv existent multi-volume.

Exceptions

InvalidOperationException

Acest arhiv a fost deschis din sursa existenta.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Solicitantul nu are permisiunea necesară pentru a accesa directorul.

ArgumentException

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

PathTooLongException

Calea specificată depășește lungimea maximă definită de sistem.

 Română